【发布时间】:2011-02-09 08:56:26
【问题描述】:
当我这样做时,我的程序运行良好
Socket s = new Socket("127.0.0.1", 10000);
但是当我用自己的外部 IP 地址替换 localhost 时,它会失败 是什么赋予了?它会立即引发 UnknownHostException,即使我可以很好地 ping 我的外部 IP。 堆栈跟踪:
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at FileClient.main(FileClient.java:29)
【问题讨论】:
-
能够 ping 它并不意味着盒子接受任意端口上的传入连接。也许它的防火墙阻止了它。
-
那么,你到底把你的服务器绑定到哪里了?你可以把它绑定在
127.0.0.1上也一样好......
标签: java sockets networking ip