关于WSACancelBlockingCall在使用TcpListener中的问题
我在一个线程里使用了TcpListener的AcceptSocket方法来侦听是否有客户端的连接请求,但是在调用TcpListener的Stop方法是会弹出一个对话框说 "一个封锁操作被对 WSACancelBlockingCall的调用中断 ",这是怎么回事?而且,似乎Stop并没有让TcpListener停止监听,我还是可以发送消息!
线程中是这样用的:
try
{
listener.Start();
while (!mStop)
{
Socket s = listener.AcceptSocket();
NetworkStream nStream = new NetworkStream(s);
StreamReader stream = new StreamReader(nStream);
String msg = stream.ReadLine();
WriteMsg(msg);
stream.Close();
nStream.Close();
s.Close();
}
}
catch
{
//
}
停止监听是在一个button的Click事件里执行,代码就是:
mStop = true;
try
{
listener.Stop();
}