TcpListener AcceptTcpClient方法没有响应

时间:2015-06-02 11:35:39

标签: c# network-programming

我使用以下代码连接到服务器上的端口(在本例中是我的本地计算机):

 int port = 7778;
 IPAddress ipAddress = Dns.Resolve("localhost").AddressList[0];
 var ip1 = IPAddress.Parse("192.168.30.51");
 TcpListener server = new TcpListener(ip1, port);

TcpClient client = server.AcceptTcpClient();

但代码卡在最后一行。我永远不会得到任何回应。这是我正在使用的端口问题吗?我该如何解决这个问题?任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:3)

server.AcceptTcpClient()阻止,直到客户端连接。那么,如果您实际连接,客户端会发生什么?它建立了你的联系吗? 也许,客户端出现错误,可能是由防火墙或其他东西造成的。

AcceptTcpClient - 方法在建立连接后立即返回。因此,当它阻止那里时,它表示没有建立连接。

请注意,在您的实施中,只接受通过192.168.30.51的连接。如果与连接传入的网络接口无关,请使用IPAddress.Any。 传递给TcpListener的IPAddress是接受连接的接口的地址。请仔细阅读MSDN on TcpListener。它不是您客户的来源地址!

答案 1 :(得分:0)

尝试在server.Start()之前致电server.AcceptTcpClient()