Connection refused: connect 异常怎么解决?
服务器端代码:
ServerSocket server=new ServerSocket(9002); System.out.println("服务成功启动!"); Socket socket=server.accept(); System.out.println("连接成功!");
客户端代码:
Socket socket= new Socket(); SocketAddress sa; sa = new InetSocketAddress(InetAddress.getLocalHost(), 9002); socket.connect(sa, 10000);
服务器中输出了“连接成功!”,说明了服务器已经成功在本地端口进行监听,客户端连接的端口号和IP地址应该也没有问题,那么为什么还会出现上述异常呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可能是你系统的配置文件里,没有将localhost和127.0.0.1关联,可以再c盘系统文件中配置
谢谢大家回答,首先是上面的代码运行的时候,服务器一直在监听,客户端运行连接不上发生异常。刚刚把
InetAddress.getLocalHost()该成了"127.0.0.1",就连上了。问了同事,他说可能是因为本地无法将机器名解析为IP地址,是这样吗?
测试了你的代码, 没有发生任何错误...!
只能胡乱猜测了!
怀疑是不是你的服务器端代码过早结束了. 一般服务器端监听是一个独立的线程, 一直循环, 每次接受, 都将socket保存, 并交由新的线程处理和进行通讯.
你试试在服务端最后加个Thread.sleep(50000);或者Socket socket2=server.accept();试试, 如果是过早结束的话, 应该就好了.