这些天由于项目(基于C#)需要移植了一个服务器功能,困扰了我足足一整天。
为了开启服务器监听功能新建了一个线程,在该线程里的主要代码:
server = new TcpListener(_ipAddr, TCP_Port);
server.Start();
while (true)
{
if (server.Pending())
{
/***************/
}
}
用原来的例程测试的时候是一直都可以监听到请求进入到if里面的;然而移植之后的代码,运行一切正常,却死活监听不到请求进不去if。
把IP、端口、引用、甚至.net的版本等问题都考虑过,始终是找不到问题所在。
在我将要放弃的时候在防火墙里允许了所有的vshost32.exe ,然后就成功解决了。
其实一开始的时候也有考虑到Windows防火墙的问题,但那时候只是允许了该工程exe,并没有想到竟然是vshost32.exe的问题。
然后把所有的vshost32.exe都允许通过防火墙,或者把防火墙完全关闭就把问题解决了。
原文地址:http://www.second-tomorrow.com/2017/05/21/明明有客户端请求但是,服务器端却总是监听不到-2/