我想将 tcp 服务器编程与Delphi中的 C#和 TCPCLIENT 链接。 客户端向服务器发送更多请求时,如何从服务器接收数据?要从服务器接收响应,我使用了每种方法,但是数据为空。
C#
private Dictionary<string, Message> _networkStreams = new Dictionary<string, Message>();
private void SimpleTcpClientOnDataReceived(object sender, Message e)
{
string Data = e.MessageString.Replace("\u0013", "");
Request request = JsonConvert.DeserializeObject<Request>(Data);
Message message = _networkStreams[request.RequestId];
message.Reply(request.Data);
}
Delphi代码
procedure TfrmList.btnsortClick(Sender: TObject);
var Request:TRequest;
I: Integer;
JsonArray: TJSONArray;
ArrayElement: TJSonValue ;
JSonValue: TJSonValue;
item:TListItem;
begin
Request := TRequest.Create;
Request.Link := '/GetAll';
Request.Password := 'Password';
IdTCPClient1.IOHandler.Write(TJson.ObjectToJsonString(Request));
Memo1.Text := Memo1.Lines.Add(IdTCPClient1.IOHandler.ReadLnWait(600));
end;
谢谢。
答案 0 :(得分:1)
您需要在邮件末尾发送(LF)或(#10)
IdTCPClient1.IOHandler.Write(TJson.ObjectToJsonString(Request));
IdTCPClient1.IOHandler.Write(#10);
Memo1.Text := Memo1.Lines.Add(IdTCPClient1.IOHandler.ReadLnWait(600));