Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TcpListener AcceptTcpClient方法没有响应_C#_Network Programming - Fatal编程技术网

C# TcpListener AcceptTcpClient方法没有响应

C# TcpListener AcceptTcpClient方法没有响应,c#,network-programming,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.AcceptTc

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

 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();
但是代码在最后一行被卡住了。我永远不会得到任何回应。这就是我使用的端口的问题吗?我如何解决这个问题?非常感谢您的帮助。

server.AcceptTcpClient会一直阻塞,直到客户端连接。那么,如果你真的在连接,客户端会发生什么?它建立了你的联系吗? 可能客户端有错误,可能是防火墙或其他原因造成的

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

请记住,在您的实现中,只接受通过192.168.30.51的连接。如果与传入连接的网络接口无关,请使用IPAddress.Any。
传递给TcpListener的IP地址是接受连接的接口的地址。请仔细阅读报告。它不是您客户的源地址

尝试调用服务器。在server.AcceptTcpClient之前启动

事实上,我的猜测是连接本身并没有建立起来。我无法找到阻止我连接的原因。如何检查防火墙是否阻塞,以及如何解决该问题?在我的示例中,IP地址是硬编码的;它是动态的。请看我最近编辑的最后一节。你能给我们看一下客户代码吗?关于防火墙,我不能说什么,因为我1不知道您使用的是哪种防火墙,2根本不知道防火墙。出于测试目的,我刚刚在void main下的控制台应用程序中编写了上述代码。我正在我的本地机器上运行这个应用程序,它的ip是我硬编码的。而且,我正在使用windows防火墙,我也不知道防火墙。请尝试IPAddress.Any。在您的本地计算机上,可能使用了127.0.0.1。也尝试过。也不行。港口似乎真的有问题。我编写了服务器。待检查,它返回false。您是否有正在尝试连接的客户端?客户怎么了?您是否尝试查看tcp:7778的windows防火墙设置?您是否尝试过以管理员身份运行服务器,以查看其行为是否有所不同?注:这纯粹是一个调查步骤;这不是一种修复方法——只是一种识别潜在问题点的方法;该IP地址是实际绑定到计算机/设备的IP地址吗?实际上,此代码正在本地计算机上的windows服务中运行。我仅以管理员身份运行服务器。我将检查该端口的防火墙设置。AcceptTcpClient等待客户端连接。您正在谈论连接到服务器上的端口。你是如何连接到你的侦听器的?@CodeCaster:我的错,但是当调用AcceptTcpClient时,客户端连接到哪里?它不是一个IP端点吗?如果你明白我想做什么,你仍然可以给出答案?如果你认为写错了什么,你也有权编辑。我真的很感激。当AcceptCpcClient无法连接到任何地方时!-TcpClient类用于连接到您配置的TcpListener。因此,您需要一个连接到服务器的客户端。