IdTCPServer,IdTCPClient这两个控件里的写方法WriteStrings向缓冲写入一段Strings
和它相对应的读方法是什么呀?

解决方案 »

  1.   

    WriteStrings实际上是成组的WriteLn,你应该用ReadLn去读。
      

  2.   

    我用ReadLn读的时候只能读到第1条文本,如何能读到后面的问题呢?
      

  3.   

    我是这样写的:
    客户端:
    procedure TClientForm.ButLineClick(Sender: TObject);
    begin
     IdTCPClient.Connect;
     try
      IdTCPClient.WriteStrings(Memo1.Lines);
     finally
      IdTCPClient.Disconnect;
     end;
    end;
    服务器:
    procedure TServerForm.IdTCPServerExecute(AThread: TIdPeerThread);
    begin
      try
      while AThread.Connection.Connected do
       Memo1.Lines.Add(AThread.Connection.ReadLn);
      finally
       AThread.Connection.Disconnect;
      end;
    end;
    当服务器端读完数据时肯定会报错,有没有方法能判断客户端传了多少条数据过来呀?
      

  4.   

    在WriteStrings前用WriteInteger(Strings.Count, True)把长度发送过来,接收时先用ReadInteger读出Count,然后循环去ReadLn