作者:白斌童鞋 | 来源:互联网 | 2023-07-25 04:31
SocketAsyncEventArgs类作为服务端启动监听正常,但手动停止监听后,客户端发送的数据,服务端还能收到,好像没停掉,这是为什么?代码就是MSDN官方示例。http:msdn
SocketAsyncEventArgs类作为服务端启动监听正常,但手动停止监听后,客户端发送的数据,服务端还能收到,好像没停掉,这是为什么?
代码就是MSDN官方示例。
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs(v=vs.90)
示例的关闭是这个方法:private void CloseClientSocket(SocketAsyncEventArgs e)
我增加了一个 停止服务器监听的方法,用来直接从服务端界面停止监听服务:public void Stop(),就是这个方法停止无效。
public void Stop()
{
m_bufferManager = null;
m_readWritePool.Clear();
listenSocket.Close();
}
3 个解决方案
谢谢,看了,不过你用的线程,我参考的是MSDN上 SocketAsyncEventArgs类的示例,还不太一样。
我觉得要注意一下你停止线程的时候 是不是是从主线程操作的,另外你确定你停止的是侦听的socket,还有一个传入(acceptsocket)的socket