我用Delphi的idTcpClient组件做的客户端程序,要和unix服务器上的程序进行通讯。我用流方式发给服务器的消息服务器程序能正常接收,服务器程序接收后要返回一个流消息给我,但是我的程序始终接收不到这个消息,请各位高人指点。
我的程序如下:
var
    stream1,stream2:TMemoryStream;begin
    ......    try
        IdTCPClient1.WriteStream(stream1);
        txLog.Lines.Add('数据发送成功!');
    except
        txLog.Lines.Add('发送数据失败!');
        IdTCPClient1.Disconnect;
        txLog.Lines.Add('同主机的连接已断开!');
    end;    IdTCPClient1.ReadStream(stream2);
    stream2.SaveToFile('e:\smsmsgR.bin');    FreeAndNil(stream1);
    FreeAndNil(stream2);
end;

解决方案 »

  1.   

    Unix发送的流必须包含结束符,好像是末尾加发null
      

  2.   

    这个问题我已经解决了,最后用的是WinAPI来做的.还是得谢谢各位啦!
      

  3.   

    建立连接: _Socket := socket(PF_INET,SOCK_STREAM,IPPROTO_IP)
    连接: connect(_Socket,ca,sizeof(ca))
    关闭: closesocket(_Socket)
    发送: send(_Socket,buf1[0],length(buf1),0)
    接收: recv(_Socket,RecMsgBuffer,length(RecMsgBuffer),0)