我使用以下代码连接到服务器上的端口(在本例中是我的本地计算机):
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();
但代码卡在最后一行。我永远不会得到任何回应。这是我正在使用的端口问题吗?我该如何解决这个问题?任何帮助将受到高度赞赏。
答案 0 :(得分:3)
server.AcceptTcpClient()
阻止,直到客户端连接。那么,如果您实际连接,客户端会发生什么?它建立了你的联系吗?
也许,客户端出现错误,可能是由防火墙或其他东西造成的。
AcceptTcpClient
- 方法在建立连接后立即返回。因此,当它阻止那里时,它表示没有建立连接。
请注意,在您的实施中,只接受通过192.168.30.51
的连接。如果与连接传入的网络接口无关,请使用IPAddress.Any。
传递给TcpListener的IPAddress
是接受连接的接口的地址。请仔细阅读MSDN on TcpListener。它不是您客户的来源地址!
答案 1 :(得分:0)
尝试在server.Start()
之前致电server.AcceptTcpClient()
!