SocketAsyncEventArgs类的服务器为啥停止服务无效,还能收到客户端数据
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();
}
--------------------编程问答--------------------
mythread.Interrupt();
mythread.Abort();
GC.Collect();
http://blog.csdn.net/fengyarongaa/article/details/6631953 --------------------编程问答-------------------- 谢谢,看了,不过你用的线程,我参考的是MSDN上 SocketAsyncEventArgs类的示例,还不太一样。 --------------------编程问答-------------------- 我觉得要注意一下你停止线程的时候 是不是是从主线程操作的,另外你确定你停止的是侦听的socket,还有一个传入(acceptsocket)的socket
补充:.NET技术 , .NET Framework