【发布时间】:2011-10-31 22:06:12
【问题描述】:
我想在这里实现这个例子:Reading from and Writing to a Socket
我将代码复制并粘贴到 NetBeans 中。我将端口名称“taranis”更改为“localhost”并尝试运行示例,但出现错误:
运行:无法获得连接到本地主机的 I/O。 Java 结果:1 构建成功(总时间:1 秒)
我还尝试将 localhost 替换为我的笔记本电脑的实际主机名,但它给出了类似的错误。你能帮助查明我做错了什么吗?
编辑:关于马克的推荐,当我替换时
System.err.println("Couldn't get I/O for " + "the connection to: localhost.");
与
e.printStackTrace();
我明白了:
run:
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
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 EchoClient.main(EchoClient.java:12)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
【问题讨论】:
-
是否有进程正在监听
localhost:7上的连接? -
你在什么操作系统上运行它?如果是 Linux/Unix,则需要使用 sudo 运行它。或者将它绑定到的端口更改为 > 1024。
-
我使用的是 Windows XP。我没有任何其他进程正在运行。我认为端口 7 会自动回显结果,因此本示例不需要套接字服务器。如果我不正确,请告诉我。谢谢~
-
尝试将自定义错误打印 (
System.err.println("Couldn't get I/O for the connection to: taranis.");) 替换为e.printStackTrace()。堆栈跟踪和确切的错误消息在这里比一般的非描述性消息更有用。 -
嗨,马克,我的 e.printStackTrace() 结果显示在我的帖子中。似乎很难破译。你或其他人看到什么问题了吗?谢谢你..