java网络编程出现java.net.ConnectException Connection refused connect的原因及解决

题目

今天在学网络编程的时候,在基于TCP的网络编程中,想要实现两台计算机之间的通信,一个是服务器端,一个是客户端,运行的时候出现了这样的错误:
错误信息

java.net.ConnectException: Connection refused: connect
 at java.net.DualStackPlainSocketImpl.connect0(Native Method)
 at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
 at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
 at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
 at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.SocksSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at java.net.Socket.<init>(Unknown Source)
 at java.net.Socket.<init>(Unknown Source)
 at 网络编程.ClientSocketDemo.main(ClientSocketDemo.java:26)

网络上的原因总结

通过查询,出现这样的原因可能是因为一下情况:

  1. 端口号被占用:杀死占用端口号(一般为8080)的进程,释放端口;彻底关闭 Tomcat 服务器,或者重新启动项目。

  2. 使用以下命令检查服务器中允许的最大进程数: ulimit -u。如果将此值设置为较低值,例如1024,则使用以下值将其增加到131072或无限制:ulimit -u 131072 或者 ulimit -u无限制 。

  3. 客户端和服务器,它们中的任何一个或两个都不在网络中。
    它们可能没有连接到LAN或互联网或任何其他网络,在这种情况下,Java将会抛出客户端的“ java.net.ConnectException:Connection refused ”异常。

  4. 服务器未运行
    服务器已关闭或未运行。在这种情况下,也会得到java.net.ConnectException: Connection refused: connect。可ping来检查服务器是否正在运行并侦听端口

  5. 服务器正在运行但没有侦听端口,客户端正在尝试连接。
    服务器正在运行但是正在侦听不同的端口。验证配置。如果你正在处理一个大项目,并有一个分层配置文件,它可能是默认配置或其他一些设置覆盖了您正确的设置。

  6. 主机端口组合不允许使用防火墙
    几乎每个企业网络都受防火墙保护。如果您正在连接其他公司网络,例如在任何电子交易系统中,需要提高防火墙双方要求确保他们允许彼此的IP地址和端口号。如果防火墙不允许连接,也会收到相同的java.net.ConnectException:Java应用程序中的连接拒绝异常。

  7. 主机端口组合不正确。
    提供的主机端口组合不正确,或者服务器端的早期主机端口组合已经更改。检查客户端和服务器端的最新配置。

  8. 连接字符串中的协议不正确
    TCP是许多高级协议的基础协议,包括HTTP,RMI等。通过连接时字符串,你需要确保你传递正确的协议,服务器期望。例如服务器已暴露,通过 RMI 而不是连接字符串的服务应该以rmi:// 开头。

  9. 若注释中未添加全部参数,也会出现这种异常java.net.ConnectException: Connection refused: connect。

后来我发现

  1. 第一个错误:我先检查了代码,发现IP地址写错了。o(╥﹏╥)o
    改正后运行,继续:java.net.ConnectException: Connection refused: connect
  2. 然后我就以为是端口的问题,想着是不是上述总结原因端口问题,但是弄了半天,我发现,居然是我没!有!打!开!服!务!器!

如果是服务器端和客户端都在自己的电脑上,运行程序的时候一定要先运行服务器端的代码,让服务器处于运行状态,准备接收客户端的信息,然后运行客户端的代码,这样就不会出现这个问题了。

当然,出现这个问题也有可能是端口没打开或者不对,或者IP地址不对,或者请求的服务不对,导致不能连接上服务器就会出现上面的问题。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
发送GET请求出现异常java.net.ConnectException: Connection refused: connect 是因为连接被拒绝。这种异常通常是由于以下几个原因引起的: 1. 目标服务器未启动或未监听指定的端口。在发送请求之前,确保目标服务器正在运行,并且监听了你所指定的端口。 2. 防火墙或代理服务器阻止了连接。检查你的防火墙设置或代理服务器设置,确保允许与目标服务器建立连接。 3. 网络连接问题。检查你的网络连接是否正常,尝试重新连接或更换网络环境。 4. 目标服务器过载。如果目标服务器处理过多的请求或负载过重,可能会导致连接被拒绝。在这种情况下,你可以尝试在稍后再次发送请求。 如果你遇到了这个异常,你可以尝试以下解决方法: 1. 确保目标服务器正在运行并监听正确的端口。 2. 检查防火墙或代理服务器设置,确保允许与目标服务器建立连接。 3. 检查网络连接,尝试重新连接或更换网络环境。 4. 如果是目标服务器过载导致的连接被拒绝,可以等待一段时间后再次发送请求。 希望这些解决方法能帮助你解决问题。如果问题仍然存在,请参考引用中提供的更多解决办法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [java.net.ConnectException: Connection refused: connect](https://blog.csdn.net/weixin_28961565/article/details/114612938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [java.net.ConnectException: Connection refused问题解决办法](https://download.csdn.net/download/weixin_38711778/12790245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值