解决方案 »

  1.   

    既然你觉得不是服务端问题,那你要跟到scktcomp.pas这个单元看看是什么问题哦。
      

  2.   

    既然你觉得不是服务端问题,那你要跟到scktcomp.pas这个单元看看是什么问题哦。谢谢!我跟踪了一下,发现是有断开连接的消息,但是不知道是什么情况下发送的。
      

  3.   

    捕捉到了异常tclientsocket有断开连接的处理,  
    ReceiveBuf抛异常了有Disconnect(FSocket)的处理哦。
      

  4.   

    我在ClientSocke的OnRead事件中的代码:
      try
        bufRecv :=Pointer(Integer(bufRecv)+iLength);
        iLength :=ClientSocket.Socket.ReceiveLength;
        FrFileSize :=FrFileSize +iLength; //接收长度 iLength
        GetMem(bufRecv,iLength);
        ClientSocket.Socket.ReceiveBuf(bufRecv^,iLength);
        try
           //业务逻辑处理
        finally
          FreeMem(bufRecv,iLength);
        end;
      except
        on E: Exception do
        begin
          TLog.SaveTraceLog('Socket读取出错:'+E.Message);
        end;
      end;
    没有捕获到异常。并且,如果我强制不让发送Disconnect消息,系统能够正常接收完成!
      

  5.   

    如果我强制不让发送Disconnect消息,系统能够正常接收完成!
    强制不让发送Disconnect消息,不是很明白,感觉是哪里业务逻辑没整好?
      

  6.   

    看看java socket的流是不是关闭了,输出流关了socket就断了。
      

  7.   


    就是在scktcomp.pas中截获一下消息,发现是关闭连接的,直接Exit,不往下面执行。