如由于通讯线路断开引起死机,你可在发送数据前检查ClientSocket->Active,再发。
另外,在ClientSocket的OnError作一些处理,如重连接、报错等

解决方案 »

  1.   

    用timer定时通讯,时间到了没有响应就认为是断开
      

  2.   

    procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      showmessage(socket.remotehost+'断线');
    end;
    在ServerSocket的 ClientDisconnect事件有可处理客户端断开的机会 给分
      

  3.   

    忘了说明一点了,我已经在ServerSocket的OnError和OnDisconnect事件中添加了相应的代码,如果Client端正常退出,进入的话,都是能判断出Client端的正确状态的,但如果发生我所说的那些异常情况的话,Server端就不清楚客户端是否断开了。