SocketServer错误的捕捉?(40分)

  • 主题发起人 主题发起人 huijunzi
  • 开始时间 开始时间
H

huijunzi

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编写一个基于SocketServer和SocketClient的通讯程序,遇到一个问题,我动行SocketServer端,然后用Delphi打开SocketClient端的程序运行,连接上Server一切正常,然后我直接用Delphi的Run->Program Reset断掉客户端,此时服务器就会报一个Asynchronous socket error 10053错误,我已经在OnEerror中写了相关事件来捕捉该错误,但是依然捕捉不到,我怎样才能捕捉到该错误呢?谢谢
 
退出调试环境运行试试,可能就没有了.
 
是的,直接运行可能会没有,但是在某些时候一个客户端异常断掉还是会引发出这个错误,做为一个服务器程序,我必须全面捕捉各种错误,从而不会因为一个客户端的异常而导致服务端的异常,从而引起整个系统的不稳定。
我说的这种情况只是为了更好的描述错误出现的环境与状况,并不是说一定就是在这种情况下发生,在其它情况下也可能会发生,我只想捕捉这个错误!
 
这个问题我不知道,就让我帮你顶一下吧!
 
你捉的位置可能不对,你到处撒网看,工程文件的位置等。
 
Asynchronous socket error 10053是因为通讯过程中,端口被强行中断而导致的。在断开client端的时候,要确保通信中的send 或者 receive 功能已经完成,就算是listen没有完成也会报错。
 
请问yxtech,在这种情况下,服务器端怎么样捕捉该错误,谢谢!因为我无法保证client在退出之前send和receive功能已经完成,所以我只想在服务器端捕捉到该错误进行处理。
谢谢!
 
在onerror事件中,将对应的socket关掉,一般不会有大的麻烦。ServerSocket.Socket.Close;
 
后退
顶部