连接但不从TcpListener接收数据

时间:2012-02-10 14:57:07

标签: c# tcp tcplistener

我开发了一个可以重新连接的小型服务器(基本上使用这里的示例: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)

2 个答案:

答案 0 :(得分:1)

这是一个防火墙......显然端口2000上有一些具有特定协议的常用服务,并且防火墙阻止了所有不遵循此协议的数据:/

尽管如此,谢谢你的帮助!!

答案 1 :(得分:0)

您是否尝试使用WAN IP而不是LAN ip连接到服务器? 您可能需要转发路由器端口才能使其正常工作。

有关端口转发的帮助,请参阅this site