Socket的测试程序,本地echo端口怎么连接不上呢?

melburg 2013-12-17 11:25:24
只贴了主要的部分

Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
BufferedReader stdIn = null;

try {
echoSocket = new Socket("localhost", 7);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;

while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
out.close();
in.close();
stdIn.close();
echoSocket.close();
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
} catch (IOException e) {
e.printStackTrace();
}
}

结果:
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 test.test.main(test.java:60)
...全文
472 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
weidu23 2013-12-19
  • 打赏
  • 举报
回复
错误是必然的 !!! ------------------------- 你只开了Echo 判断理由: java.net.ConnectException: Connection refused: connect -------------------------- 你自己回忆下,是不是一运行,等10秒就报错啊哥们儿 ...
lcf 2013-12-18
  • 打赏
  • 举报
回复
你是不是误会了什么。。。
melburg 2013-12-18
  • 打赏
  • 举报
回复
引用 8 楼 lcf 的回复:
你是不是误会了什么。。。
我其实也是按照书上的测试来的。。 只不过貌似echo服务确实没有开启,怎么开启这个服务呢? 命令行那个echo和这个echo服务不是一回事儿?
lcf 2013-12-18
  • 打赏
  • 举报
回复
当然不是。。。怎么开启echo服务google一下吧
lcf 2013-12-17
  • 打赏
  • 举报
回复
你确定echo服务开启了么。。
独行码夫 2013-12-17
  • 打赏
  • 举报
回复
你确定7端口是你socket服务器开的端口么?你看看你的socket服务器没开起来,而是报了端口被占用的异常了?
teemai 2013-12-17
  • 打赏
  • 举报
回复
localhost -> 127.0.0.1 或者换成你的局域网ip
teemai 2013-12-17
  • 打赏
  • 举报
回复
你用7端口???早被占用了吧? 换成8888试试。
melburg 2013-12-17
  • 打赏
  • 举报
回复
引用 4 楼 lcf 的回复:
你确定echo服务开启了么。。
一般linux,mac的系统,echo不都是开了的么,而且我在命令行输入echo xxx,能返回xxx啊,应该是开了的吧。
melburg 2013-12-17
  • 打赏
  • 举报
回复
引用 3 楼 qyj415 的回复:
你确定7端口是你socket服务器开的端口么?你看看你的socket服务器没开起来,而是报了端口被占用的异常了?
7号端口应该是echo服务器的端口啊。。我在命令行输入echo xxx是可以返回xxx的,不是说明echo本身这个服务在使用么
melburg 2013-12-17
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
你用7端口???早被占用了吧? 换成8888试试。
我只开了一个Socket,没开ServerSocket,8888没有监听就不会有响应吧?7号宽口是echo服务程序的端口啊,etc/services里有这个配置的

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧