Java服务器客户端程序I/O异常

Java服务器客户端程序I/O异常,java,networking,udp,client-server,Java,Networking,Udp,Client Server,我制作了这个节目: 如果我将服务器的主机名设置为127.0.0.1或将我的计算机名设置为Ajay-PC,那么它将非常有效 然而,这两种方法是局域网或本地的,而不是因特网。所以我把它改成了我的互联网ip。70.128.xxx.xxx等,但它不起作用。我检查: canyouseeme.org 它说4444已经关闭了 所以我做了一个快速的港口前进 港口转发: 名称:我的Java程序 起始端口:4444 结束端口:4444 服务器IP:10.0.0.12您如何访问internet?可能您必须配置ADS

我制作了这个节目:

如果我将服务器的主机名设置为127.0.0.1或将我的计算机名设置为Ajay-PC,那么它将非常有效

然而,这两种方法是局域网或本地的,而不是因特网。所以我把它改成了我的互联网ip。70.128.xxx.xxx等,但它不起作用。我检查:

canyouseeme.org

它说4444已经关闭了

所以我做了一个快速的港口前进

港口转发: 名称:我的Java程序 起始端口:4444 结束端口:4444
服务器IP:10.0.0.12您如何访问internet?可能您必须配置ADSL调制解调器或路由器/交换机,以便将端口4444转发到您的计算机。

如果您使用的是连接到调制解调器的路由器,我猜您是在局域网中。然后你的电脑连接到路由器


尝试连接到具有internet IP的调制解调器。

是否已检查客户端是否连接到端口4444和公用IP?这是大多数人犯的另一个常见错误。如果您的端口如上所述已打开且防火墙已关闭,则不会有任何东西阻止您连接。

使用或嗅探初始端口。使用端口4444筛选数据包。确认打开的SYN数据包正在离开您的计算机,打开的SYN数据包正在返回到您的计算机,并查看计算机是否/如何响应打开的SYN数据包


注意:如果您尝试使用这些工具,如果您使用localhost 127.0.0.1和您的PC IP 10.0.0.12地址,您将无法使用它跟踪-在这些情况下,数据包实际上不会离开计算机,也无法被窥探。如果您想在不涉及网关的情况下窥探局域网上的数据包,请将客户端和服务器放在不同的计算机上。

谢谢,这可能会起作用,但我希望保留解决方案,同时仍留在路由器后面。这可能吗?PS:NetGear Wireless NI在我的第一篇帖子中说我已经转发了,并使用了端口开放检查器。所以我猜我已经过了这个关,对吗?如果端口打开检查器返回打开状态,您的程序是否正常工作?我想如果它不起作用,港口就不会开放。异常消息是什么?我只知道IO异常。客户端无法读取服务器所说的内容。请尝试捕获异常并打印消息:Try{…}catchException e{System.out.printlne.message;}它说Connection已拒绝:connectOh抱歉!!让我更新我的第一篇帖子端口已打开我正在获取IOException not UnknownHost这是我的客户端代码:kkSocket=new Socket70.137.xxx.xx,4444;这是100%正确,端口已打开,但我收到IO异常,因此客户端无法读取任何内容。这是网络配置问题,这不是一个编程问题。不是因为我的路由器都设置了端口转发,并且端口是打开的,但问题是为什么我在internet IP上收到IOException,而不是本地。那么,您是否能够解决这个问题?我用Java开发的服务器客户端TictaToe应用程序也遇到了同样的问题。好主意,我会尝试一下,然后发布结果,如果这有帮助,我会选择最佳答案。