Java Server客户端程序I / O异常

时间:2010-04-11 22:56:47

标签: java networking udp client-server

我制作了这个节目: http://java.sun.com/docs/books/tutorial/networking/sockets/clientServer.html

如果我将服务器的主机名设置为127.0.0.1或我的计算机名称(Ajay-PC),它就能完美运行。

然而,这两种方法是局域网或本地只有互联网。所以我把它改成了我的网络ip。 70.128.xxx.xxx等但它没有用。我查了一下:

canyouseeme.org

它说4444已经关闭了。

所以我快速向前移动了。

Portforward: 名称:我的Java程序 起始港口:4444 终点:4444 服务器IP:10.0.0.12< - (是的,这是我检查的本地IP)

然后我试过了 canyouseeme.org AGAIN:

它说4444是OPEN

我运行了我的服务器客户端程序,但还没有工作。

所以我的问题是客户端服务器程序本地无法在Internet上运行。所以有些东西阻挡它,我不知道是什么。 编辑:它没有被阻止,因为我检查端口是打开的。但我收到的是IO异常,而不是UnknownHost

计算机: Windows Vista x64 Norton AntiVirus 2010

谢谢!我会给出最好的答案或者最好的答案;):)

4 个答案:

答案 0 :(得分:0)

您如何访问互联网?也许您必须配置ADSL调制解调器或路由器/交换机以将端口4444转发到您的计算机。

答案 1 :(得分:0)

如果您使用连接到调制解调器的路由器,我猜您在LAN中。并且您的计算机连接到路由器。

尝试连接到具有互联网IP的调制解调器。

答案 2 :(得分:0)

您是否检查过客户端是否连接到端口4444和您的公共IP?这是大多数人犯的另一个常见错误。如果您的端口如上所述打开并且防火墙处于关闭状态,那么您无需停止连接。

答案 3 :(得分:0)

使用WiresharkWinDump来窥探最初的TCP handshake。过滤端口4444的数据包。验证打开的SYN数据包是否正在离开您的计算机,打开的SYN数据包是否正在返回到您的计算机,并查看计算机是否/如何响应打开的SYN数据包。

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