TcpListener AcceptTcpClient方法没有响应

本文关键字:响应 方法 AcceptTcpClient TcpListener | 更新日期: 2023-09-27 17:52:45

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

 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();

但是代码在最后一行卡住了。我永远得不到任何回应。这是我使用的端口的问题吗?如何解决这个问题?如有任何帮助,不胜感激。

TcpListener AcceptTcpClient方法没有响应

server.AcceptTcpClient()阻塞直到客户端连接。那么,如果你真的在连接,在客户端会发生什么?这能建立你们之间的联系吗?可能是客户端出现了错误,可能是由防火墙或其他原因引起的。

AcceptTcpClient -方法在连接建立后立即返回。所以当它在那里阻塞时,它说没有建立连接。

请记住,在您的实现中,只接受通过192.168.30.51的连接。使用IPAddress。任何,如果它不相关的网络接口连接是传入的。传递给TcpListener的IPAddress是接受连接的接口的地址。请仔细阅读tcpllistener上的MSDN。这不是您客户端的源地址!

先呼叫server.Start()再呼叫server.AcceptTcpClient() !