服务端和客户端放在同一架机子上进行测试,同时运行两个客户端程序进行数据传输时,当一个客户端传输还未完成,另一个客户端又开始传输时,两个客户端都出现connection closed gracefully,但如果单独一个客户端进行或是一个客户端传输完成,第二个才开始时就能正常运行,请各位指点是怎么回事,不是说indy是多线程的吗,还是说两上客户端不能在同一架机子上运行。

解决方案 »

  1.   

    我的代码是这样的
    在客户端循环将一批记录传到服务器with ClientDataSet do
      begin
        close;
        CommandText:='select  * from 表';
        open;
        i:=1;
        while not eof do
        begin
          TcpClient.WriteLn(temp_str);
        next;
    end;服务端
    在tcpserver的onexecute中
     tempstr:=AThread.Connection.ReadLn('',-1);
      

  2.   

    客户端是怎么的不用管,问题只在服务端.tempstr:=AThread.Connection.ReadLn('',-1);只看这一句好象不够...
    tempstr是哪儿定义的变量?
    估计多半是线程安全性问题.
      

  3.   

    再加一个idtcpthreadmrg控件。来管理线程
      

  4.   

    我在服务器端加了个idtcpthreadmrgpool,现在出现的现象时,提示不能进行异步操作。如果服务端不是在调试模式下,则第一个客户端能继续传输,第二个客户端连接失败,是不是还要设置什么啊