serversocket断开clientsocket报错???(50分)

  • 主题发起人 主题发起人 风清云淡系明月
  • 开始时间 开始时间

风清云淡系明月

Unregistered / Unconfirmed
GUEST, unregistred user!
服务器端:
While Not Terminated And ClientSocket.Connected Do
Try
SocketStream := TWinSocketStream.Create(ClientSocket, 10000);
Try
FillChar(Data, SizeOf(Data), 0);
If SocketStream.Read(Data, SizeOf(Data)) = 0 Then
Begin

sleep(1);
ClientSocket.Close;
Terminate;
End;
RecText := Data;
If Length(RecText) > 2 Then
Delete(RecText, Pos(#13#10, RecText), 2); // Delete #13#10
If ClientSocket.Connected Then
Begin
...................
End;
Finally
SocketStream.Free;
End;
Except
HandleException;
End;

可是超时断开客户端连接,客户端报错:
asynchronous socket 错误 10053
怎样才能不报错?实在不行能不能用try except 让错误不显示?
 
10053错误的解释:
WSAECONNABORTED 10053 Software caused connection abort.
 

If SocketStream.WaitForData(5000) Then...
试试看。
 
case ErrorCode of
WSAECONNREFUSED: ShowMessage('Server Not Find!'); {处理代码}
WSAETIMEDOUT: ShowMessage('NetWork Not Connected'); {处理代码}
end;
ErrorCode :=0;
在客户端的出错事件里面加入上述代码
 
在ClientSocket1 的onError写
ErrorCode:=0;
在serverSocket1 的onError写
ErrorCode:=0;
都写上就好用了
 
一般情况来讲,10053的错误是这样发生的:
发送端成功发送了数据包,但接收端没有接收就关闭了socket退出,这时发送端就会触发这个错误。
 
后退
顶部