首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于WSACancelBlockingCall在使用TcpListener中的有关问题

2012-01-29 
关于WSACancelBlockingCall在使用TcpListener中的问题我在一个线程里使用了TcpListener的AcceptSocket方法

关于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();
                        }
                        catch
                        {


                                //
                        }

这个问题是怎么回事?是不是因为AcceptSocket一直阻塞了,在调用Stop的时候就会有问题?

[解决办法]
up
[解决办法]
我也遇到了,不放到线程就没事,只是不放到线程,程序就跟死了一样,哈哈

热点排行