我开发了一个可以重新连接的小型服务器(基本上使用这里的示例:http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx)
问题是我不知道如何但是无论何时建立连接,它都无法发送数据(或者发送的数据不会到达服务器,从TcpListener的GetStream中读取NetworkStream的方法只是阻塞而不能获得任何数据字节。
我试图telnet它,而不是使用我的客户端,问题是相同的。有趣的是,如果我做" telnet localhost 2000"它完美无缺!!
似乎某些东西阻塞了通信(以前甚至连localhost都没有工作,直到我在服务器上升级了.NET Fw),但我不知道它只能阻止数据但允许连接,实际上没有知道应用程序可以做到!
对此的任何帮助将不胜感激! 谢谢!
编辑:
该行
TcpClient client = server.AcceptTcpClient();
正确获取tcp连接然后我获得网络流,当我尝试从中读取时,没有收到数据(i == 0):
i = stream.Read(bytes, 0, bytes.Length)
答案 0 :(得分:1)
这是一个防火墙......显然端口2000上有一些具有特定协议的常用服务,并且防火墙阻止了所有不遵循此协议的数据:/
尽管如此,谢谢你的帮助!!
答案 1 :(得分:0)
您是否尝试使用WAN IP而不是LAN ip连接到服务器? 您可能需要转发路由器端口才能使其正常工作。
有关端口转发的帮助,请参阅this site