Connection refused: connect 异常怎么解决?

发布于 2021-11-06 09:07:43 字数 558 浏览 924 评论 4

服务器端代码:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

悟红尘 2021-11-09 16:28:09

可能是你系统的配置文件里,没有将localhost和127.0.0.1关联,可以再c盘系统文件中配置

终遇你 2021-11-09 16:01:33

谢谢大家回答,首先是上面的代码运行的时候,服务器一直在监听,客户端运行连接不上发生异常。刚刚把
InetAddress.getLocalHost()该成了"127.0.0.1",就连上了。问了同事,他说可能是因为本地无法将机器名解析为IP地址,是这样吗?

樱花落人离去 2021-11-08 02:48:16

测试了你的代码, 没有发生任何错误...!

只能胡乱猜测了!

把昨日还给我 2021-11-07 12:58:09

怀疑是不是你的服务器端代码过早结束了. 一般服务器端监听是一个独立的线程, 一直循环, 每次接受, 都将socket保存, 并交由新的线程处理和进行通讯.

你试试在服务端最后加个Thread.sleep(50000);或者Socket socket2=server.accept();试试, 如果是过早结束的话, 应该就好了.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文