我创建了一个 Java 网络程序,并且每隔一段时间,当我运行时(它不会一直发生)我得到一个幽灵号码,我的套接字收到一个类似于 -16956754 的数字(它总是相同的数字),我永远不要通过套接字发送接近我收到的数字的数字。可能是因为我正在使用的端口上获得流量吗?我正在使用 25565 这是一个非常常见的端口..
如果是这样,您建议哪个端口使用最少,适合游戏应用程序?
我创建了一个 Java 网络程序,并且每隔一段时间,当我运行时(它不会一直发生)我得到一个幽灵号码,我的套接字收到一个类似于 -16956754 的数字(它总是相同的数字),我永远不要通过套接字发送接近我收到的数字的数字。可能是因为我正在使用的端口上获得流量吗?我正在使用 25565 这是一个非常常见的端口..
如果是这样,您建议哪个端口使用最少,适合游戏应用程序?
任何网络服务器套接字(如您的应用程序)都会打开一个套接字(带有端口),并等待连接。套接字不知道连接来自哪里,也不知道套接字的客户端将要做什么。无论是什么应用程序,连接到服务器的客户端总是有可能不是您所期望的。
在您的程序中,您需要创建一个协议,将服务器的客户端标识为您期望的客户端类型。如果客户端不是正确的应用程序,那么您应该断开连接。
例如,Mail 协议期望客户端发送 EHLO 或 HELO 提示,HTTP 期望 GET、POST 或 PUT 等。
在您的情况下,您可能选择了 Minecraft 使用的端口,但如果您可以识别对您很重要的客户端类型,则没有理由停止使用该端口。
设置服务器并期望唯一连接的是有效客户端是不合理的。
更改端口只会使问题不那么频繁(也许),并且不会使问题消失。
通过将端口更改为未使用的端口来解决。
如果它是您自己的应用程序并且想要选择一个端口,您会选择一个不是 ta 'pretty common port' 的东西。在这种情况下,它看起来像是 Minecraft 服务器使用的端口。