W wenxh1202 Unregistered / Unconfirmed GUEST, unregistred user! 2005-02-27 #1 异步出错先出现10053,后出现 socket error 10061,该如何解决?什么原因导致 主要是clientsocket连接serversocket的时候弹出的! qq 191256153
W wenxh1202 Unregistered / Unconfirmed GUEST, unregistred user! 2005-02-27 #2 异步出错先出现10053,后出现 socket error 10061,该如何解决?什么原因导致 主要是clientsocket连接serversocket的时候弹出的! qq 191256153
J jfyes Unregistered / Unconfirmed GUEST, unregistred user! 2005-02-27 #3 Socket Error=10061 连接被拒绝 procedure TForm1.ServerClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin //Error Conditions Case ErrorCode Of 10054:MemoLog.lines.add('错误代码10054,一个连接被远方重新设置'); 10053:MemoChuCuo10053.Lines.Add('10053 退出的ID:'+Inttostr(Socket.SocketHandle)); Else MemoLog.Lines.Add('Error Happen, Error Code:'+InttoStr(errorCode)); End; ErrorCode:=0; //加这一句可以避免出现错误提示框 end;
Socket Error=10061 连接被拒绝 procedure TForm1.ServerClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin //Error Conditions Case ErrorCode Of 10054:MemoLog.lines.add('错误代码10054,一个连接被远方重新设置'); 10053:MemoChuCuo10053.Lines.Add('10053 退出的ID:'+Inttostr(Socket.SocketHandle)); Else MemoLog.Lines.Add('Error Happen, Error Code:'+InttoStr(errorCode)); End; ErrorCode:=0; //加这一句可以避免出现错误提示框 end;
W wenxh1202 Unregistered / Unconfirmed GUEST, unregistred user! 2005-02-27 #5 jfyes:我编写的不是server端程序,而且,我的client处理方式与你的类似。只是我想避免10053和10061错误的出现。如何处理好些?
S songsheping Unregistered / Unconfirmed GUEST, unregistred user! 2005-03-01 #6 我有一个转换错误码的函数给你吧: function SocketError(SocketCode: Integer):String; begin case SocketCode of WSAEINTR : Result:='操作被中止'; WSAEACCES: Result:='访问被拒绝'; WSAEMFILE: Result:='打开太多的Socket'; WSAEINPROGRESS: Result:='一个阻塞操作正在执行中'; WSAENOTSOCK: Result:='在一个非法Sock对象上操作'; WSAEMSGSIZE: Result:='数据太长'; WSAEADDRINUSE: Result:='地址已被使用'; WSAEADDRNOTAVAIL: Result:='设置地址失败'; WSAENETDOWN: Result:='网络关闭'; WSAENETUNREACH: Result:='网络不可达'; WSAENETRESET: Result:='网络被重置'; WSAECONNABORTED: Result:='对方断开连接'; WSAECONNRESET: Result:='连接被重置'; WSAENOBUFS: Result:='缓冲不足'; WSAEISCONN: Result:='SOCK已连接'; WSAENOTCONN: Result:='SOCK未连接'; WSAESHUTDOWN: Result:='SOCK已经关闭'; WSAETIMEDOUT: Result:='连接服务器超时'; WSAECONNREFUSED: Result:='连接被拒绝'; WSAEHOSTDOWN: Result:='主机已关机'; WSAEHOSTUNREACH: Result:='找不到路由'; WSAEPROCLIM: Result:='进程太多'; WSAHOST_NOT_FOUND:Result:='找不到主机'; else Result:='未知网络错误'; end; end;
我有一个转换错误码的函数给你吧: function SocketError(SocketCode: Integer):String; begin case SocketCode of WSAEINTR : Result:='操作被中止'; WSAEACCES: Result:='访问被拒绝'; WSAEMFILE: Result:='打开太多的Socket'; WSAEINPROGRESS: Result:='一个阻塞操作正在执行中'; WSAENOTSOCK: Result:='在一个非法Sock对象上操作'; WSAEMSGSIZE: Result:='数据太长'; WSAEADDRINUSE: Result:='地址已被使用'; WSAEADDRNOTAVAIL: Result:='设置地址失败'; WSAENETDOWN: Result:='网络关闭'; WSAENETUNREACH: Result:='网络不可达'; WSAENETRESET: Result:='网络被重置'; WSAECONNABORTED: Result:='对方断开连接'; WSAECONNRESET: Result:='连接被重置'; WSAENOBUFS: Result:='缓冲不足'; WSAEISCONN: Result:='SOCK已连接'; WSAENOTCONN: Result:='SOCK未连接'; WSAESHUTDOWN: Result:='SOCK已经关闭'; WSAETIMEDOUT: Result:='连接服务器超时'; WSAECONNREFUSED: Result:='连接被拒绝'; WSAEHOSTDOWN: Result:='主机已关机'; WSAEHOSTUNREACH: Result:='找不到路由'; WSAEPROCLIM: Result:='进程太多'; WSAHOST_NOT_FOUND:Result:='找不到主机'; else Result:='未知网络错误'; end; end;
H hotboys Unregistered / Unconfirmed GUEST, unregistred user! 2005-03-01 #7 出錯了10061是你根本沒有連接上服務器端,你想避免當然要確保連上服務器端了,首先:設定要服務器端並至少運行一次以注冊,然後設定socket的host為服務器端地址(如服務器端在本機可設為127.0.0.1。在運行客戶端之前,要首先運行socket應用程序(這是一個單獨的程序,搜索一下C:盤就知道了)。 當然,如果你只是想不看見錯誤信息框,那麼可以用下面的方式進行。:) try socket.astive := true; except //這裡為空就不會彈出錯誤對話框了,當然調試的時候是必然會彈出的。 end;
出錯了10061是你根本沒有連接上服務器端,你想避免當然要確保連上服務器端了,首先:設定要服務器端並至少運行一次以注冊,然後設定socket的host為服務器端地址(如服務器端在本機可設為127.0.0.1。在運行客戶端之前,要首先運行socket應用程序(這是一個單獨的程序,搜索一下C:盤就知道了)。 當然,如果你只是想不看見錯誤信息框,那麼可以用下面的方式進行。:) try socket.astive := true; except //這裡為空就不會彈出錯誤對話框了,當然調試的時候是必然會彈出的。 end;