我制作了这个节目: 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
谢谢!我会给出最好的答案或者最好的答案;):)
答案 0 :(得分:0)
您如何访问互联网?也许您必须配置ADSL调制解调器或路由器/交换机以将端口4444转发到您的计算机。
答案 1 :(得分:0)
如果您使用连接到调制解调器的路由器,我猜您在LAN中。并且您的计算机连接到路由器。
尝试连接到具有互联网IP的调制解调器。
答案 2 :(得分:0)
您是否检查过客户端是否连接到端口4444和您的公共IP?这是大多数人犯的另一个常见错误。如果您的端口如上所述打开并且防火墙处于关闭状态,那么您无需停止连接。
答案 3 :(得分:0)
使用Wireshark或WinDump来窥探最初的TCP handshake。过滤端口4444的数据包。验证打开的SYN数据包是否正在离开您的计算机,打开的SYN数据包是否正在返回到您的计算机,并查看计算机是否/如何响应打开的SYN数据包。
注意:如果您尝试使用这些工具,如果您使用localhost(127.0.0.1)和您的PC IP(10.0.0.12)地址,则无法使用它 - 在这些情况下,数据包不会实际上离开电脑并且无法窥探。如果您想在不涉及网关的情况下窥探LAN上的数据包,请将客户端和服务器放在不同的计算机上。