Java套接字无法连接到自己的计算机

时间:2011-02-09 08:56:27

标签: java sockets networking ip

当我做

时,我的程序运行正常
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)

2 个答案:

答案 0 :(得分:1)

  

是什么给出的?它抛出一个   即使是UnknownHostException也是如此   虽然我可以ping我的外部IP   精细。堆栈跟踪:

我没有在堆栈跟踪中看到UnknownHostException。 “远程”端主动拒绝连接。可能是因为防火墙,但不太可能,因为防火墙通常会静默丢弃数据包而不是主动拒绝。很可能,服务器应用程序只是没有侦听外部接口。出于安全原因,大多数服务器软件的行为与默认配置中的相似。检查netstat -n -a命令的输出。

答案 1 :(得分:0)

如果那是您的外部IP,则需要打开/移植前转100000