定长度的发包就可以了 不要用SendText,用SendBuffer 其中的buffer可以自己定义 比如 type Tmybuf = record BufType[10]:string; //算是包头吧,也可以不要 Data:array[0..1023] of char;//真正用来保存数据的数组 IntData:integer; //有的时候需要发送包的长度,所以定义一个整数 ................ end;大概就是按上面的形式去定义一个自己的类型,用的时候,发送: var buf:TMybuf; //定义用来保存要发送内容的变量 begin buf.BufType:='MSG'; //比如这个包是用来发送一句话的 strpcopy(buf.Data,'呵呵,你好'); //把"呵呵,你好"复制到buf.Data里去 ClientSocket1.SendBuffer(buf,sizeof(buf);//把数据包发送出去 end;接收的时候: var buf:TMybuf; begin ServerSocket1.ReceiveBuffer(buf,sizeof(buf));//接收数据包,放到buf变量里 //下面是对不同数据包的处理 if buf.BufType='MSG' then //如果收到的是消息类型的数据包 begin ShowMessage(buf.Data) //把内容用对话框显示出来 end else if buf.BufType='xxx' then //下面的是其他类型数据包的处理 begin ................ end else if .............. ............... else exit; end; end;模式就是这样了,如果还有不懂的,Q我,215422567
不要用SendText,用SendBuffer
其中的buffer可以自己定义
比如
type
Tmybuf = record
BufType[10]:string; //算是包头吧,也可以不要
Data:array[0..1023] of char;//真正用来保存数据的数组
IntData:integer; //有的时候需要发送包的长度,所以定义一个整数
................
end;大概就是按上面的形式去定义一个自己的类型,用的时候,发送:
var
buf:TMybuf; //定义用来保存要发送内容的变量
begin
buf.BufType:='MSG'; //比如这个包是用来发送一句话的
strpcopy(buf.Data,'呵呵,你好'); //把"呵呵,你好"复制到buf.Data里去
ClientSocket1.SendBuffer(buf,sizeof(buf);//把数据包发送出去
end;接收的时候:
var
buf:TMybuf;
begin
ServerSocket1.ReceiveBuffer(buf,sizeof(buf));//接收数据包,放到buf变量里 //下面是对不同数据包的处理
if buf.BufType='MSG' then //如果收到的是消息类型的数据包
begin
ShowMessage(buf.Data) //把内容用对话框显示出来
end else if buf.BufType='xxx' then //下面的是其他类型数据包的处理
begin
................
end
else if ..............
...............
else
exit;
end;
end;模式就是这样了,如果还有不懂的,Q我,215422567