可能一起发也可以,不过如果掉包就问题大啦!
来个例子(仅一部分):
客户端:var
writetext:string;
..........
begin
.......
//发送的格式如<报文头><内容>(这里假设报文头只有发送人信息)
writetext:='<'+fromname.text+'>'+"<'+memsend.text+'>';
......
if ClientSocket.Active then
ClientSocket.Socket.SendText(WriteText);
.........
end;
服务器端:
for I := 1 to Length(ReadText) do
begin
X := Copy(ReadText, I, 1);
if (X = '<') then
begin
Inc(Y);//包头
if (Y = 1) then );//包头
SenderBegin := I + 1
else if (Y = 2) then //内容
MsgBegin := I + 1;
end
else if (X = '>') then
begin
if (Y = 1) then//包头
SenderLen := I - SenderBegin
else if (Y = 2) then//内容
MsgLength := I - MsgBegin;
end;
Sender := Copy(ReadText, SenderBegin, SenderLen);//包头
Msg := Copy(ReadText, MsgBegin, MsgLength);//内容