1
我不确定这是否可能,但在这里。 通常我发送的字符串是这样的...使用tcp发送字符串数组
Connection.IOHandler.WriteLn('alpha');
Connection.IOHandler.WriteLn('bravo');
Connection.IOHandler.WriteLn('charley');
//and so on..
但是如果我想在短短一气呵成发送,只发送一次全部。 也许我可以把它放在一个字符串数组然后发送数组。
someStr : array[1..3] of string = ('alpha','bravo','charley');//this could be more
...
StrListMem := TMemoryStream.Create;
try
StrListMem.WriteBuffer(someStr[0], Length(someStr));
StrListMem.Position:=0;
Connection.IOHandler.Write(StrListMem, 0, True);
finally
StrListMem.Free;
end;
我只是不知道如何这一权利,也许有人可以举个例子?以及接收器(客户端)将如何读取它。
编辑:
我也有在如何读取数据流,不知道什么不对的代码问题。
客户:
msRecInfo: TMemoryStream;
arrOf: Array of Char;
...
msRecInfo := TMemoryStream.Create;
try
AContext.Connection.IOHandler.ReadStream(msRecInfo, -1, False);
SetLength(arrOf, msRecInfo.Size div SizeOf(Char));
msRecInfo.Position := 0;
msRecInfo.ReadBuffer(arrOf[0], Length(arrOf) * SizeOf(Char));
finally
MessageBox(0,pChar(arrOf[0]),0,0);//memo1.Lines.Add(arrOf[0]);
msRecInfo.Free;
end;
这似乎是OP希望每个字符串后,新的生产线。 –
嗨,谢谢你的回复,我知道我问了很多好处,但是你能不能帮我解释一下客户端如何阅读它?我添加了我的客户端代码。 – user2798455
我更新了答案。基本上无论发送数据的方式如何,都是一样的。 – Runner