使用TServerSocket,关闭服务的问题(100分)

  • 主题发起人 主题发起人 jshen
  • 开始时间 开始时间
J

jshen

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用TServerSocket的stThreadBlocking模式,在有客户端连接的情况下,不能强制结束
ServerSocket的服务 active属性设置以及用ServerSocket.socket.connection.close,都出现同样的问题。当时系统的情况是客户端在等待server的回应。
通讯步骤是:1、C--->S 发送数据
2、C等待服务器回应。
我需要在2中强制结束服务器的ServerSocket的服务。
 
是否是对socket设置了SO_LINGER选项,如果确定了非零的超时间隔,则closesocket()调用阻塞进程,直到所剩数据发送完毕或超时。
closesocket出现什么情况?
 
不好意思,有点说错了,是在Server的 Stream.WaitForData(TimeOut)的时候出现这样的情况,在没有客户端连接的时候,ServerSocket开启,关闭,都是正常的,当有客户连接的时候关闭服务器就出现程序不相应,我找不到,他到底在执行什么,我的timeout是2秒。
 
你使用的是TServerSocket,不管在什么情况下,你都可以直接ServerSocket.socket.connection.close,它只做了一些基本的判断就closesocket(),不会出问题,问题肯定不是出在ServerSocket.socket.connection.close,可能是在连接断开后的处理上有问题。
 
现在搞清楚了,我在断开的时候就已经释放了线程的资源,但是这个在线程异常结束的时候,还在使用线程的资源,导致执行错误。
 
后退
顶部