C#一个现有的连接被远程主机强行关闭

时间:2021-04-23 15:27:49

标签: c# server tcp

似乎是一个常见问题,但这一次,问题似乎是基于系统的*。

上下文:我制作了一个包含 TCP 连接的小游戏。奇怪的是,在 6 个玩家中,有 4 个可以完美地使用该应用程序。前面提到的错误发生在另外 2 个。 *所以问题应该出在有问题的玩家那端。

我们对其中一名有问题的玩家进行了广泛调查,以找出问题的原因。我希望根据我们的测试,知识渊博的人可以缩小可能出现问题的范围,并指出原因。

  • 错误发生在: TcpClient client= new TcpClient("ip_here", port_here); 这是第一行,在尝试任何通信之前,或在使用任何网络流之前。

  • 禁用所有防火墙

  • 所有参与者都拥有最新的 .Net (.NET5)。

  • 服务器设置正确,有端口转发。

  • 最重要的是,有缺陷的玩家可以托管服务器,其他人可以加入,但他自己不能。当他尝试从 LAN 和外部 ip 加入时。 (同样的错误)我认为问题出在他的客户端的另一个原因。

  • 问题在他下载 .exe 和他自己编译时都存在。所有玩家,包括功能玩家都使用相同的程序。

  • 被调查的有问题的玩家试图从他的常规互联网和移动热点互联网加入。这些也在不同的计算机上进行了尝试。都没有用。

  • 快速尝试多个连接时,在一个循环中,没有任何通信尝试成功

  • 考虑到地理位置,所有玩家都在距离服务器 150-100 公里范围内。被调查的故障玩家在大约 300 公里外,但在不同的国家。但是,另一个未调查的故障玩家在服务器国家/地区内,未知距离不超过 300 公里。

不幸的是,我们没有人了解 TCPClient 的内部工作原理,因此我们无法真正使用 wireshark 进行调查。 我们尝试使用 TLS 1.2 安全协议,如下所示: An existing connection was forcibly closed by the remote host 但它似乎没有效果(还有,4 个功能玩家不会反驳这种方法吗?) 大多数其他 StackOverflow 问题似乎都与通信本身有关,但在这里,尝试连接时会引发错误。另外,请记住,大多数用户根本没有遇到任何问题。

0 个答案:

没有答案