读书人

怎么判断tcplistener是否正在侦听

发布时间: 2012-01-18 00:23:26 作者: rapoo

如何判断tcplistener是否正在侦听?

VB.NET code
While trueDim tcpclient As TcpClient = tcplistener.AcceptTcpClientnext


当使用tcplistener.stop()后.会引发一个socketException异常 .一个封锁操作被对WSACancelBlockingCall的调用中断.

如何断定当前tcplistener是否还在侦听中呢?active属性是保护属性用不了.


如果通过判断Pending属性的话,倒也可以.

但是accepttcpclient是阻塞的.没有pending程序运行到这里后就一直停在这里直到有连接后在执行以后的语句.如果判断Pending的话,就会一直不停的循环判断.这样对CPU的占用率应该会比不判断高的多吧?

有没有别的办法解决这个问题呢?


[解决办法]
可以先用一个客户端连接来停下来的阻塞运行,然后设置条件让循环退出,这样就不会有错误发生了。

读书人网 >VB Dotnet

热点推荐