java.net.ConnectException: Connection refused 问题解决办法
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 java.net.ConnectException: Connection refused 问题解决办法的相关资料, 需要的朋友可以参考下
Socket 异常
客户端异常
java.net.ConnectException: Connection refused: connect
该异常发生在客户端进行 new Socket(ip, port)操作时, 该异常发生的原因是或者具有 ip 地址的机器不能找到(也就是说从当前机器不存在到指定 ip 路由), 或者是该 ip 存在, 但找不到指定的端口进行监听出现该问题, 首先检查客户端的 ip 和 port 是否写错了, 如果正确则从客户端 ping 一下服务器看是否能 ping 通, 如果能 ping 通(服务服务器端把 ping 禁掉则需要另外的办法), 则看在服务器端的监听指定端口的程序是否启动
java.net.SocketException: Socket is closed
常的原因是己方主动关闭了连接后 (调用了 Socket 的 close 方法) 再对网络连接进行读写操作
java.net.SocketException: (Connection reset 或者 Connect reset by peer:Socket write error)
第一个就是如果一端的 Socket 被关闭 (或主动关闭或者因为异常退出而引起的关闭), 另一端仍发送数据, 发送的第一个数据包引发该异常(Connect reset by peer) 另一个是一端退出, 但退出时并未关闭该连接, 另一端如果在从连接中读数据则抛出该异常 (Connection reset) 简单的说就是在连接断开后的读和写操作引起的
java.net.SocketException: Broken pipe
抛出 SocketExcepton:Connect reset by peer:Socket write error 后, 如果再继续写数据则抛出该异常
(暂时还没有测出来)
java.net.BindException:Address already in use: JVM_Bind
该异常发生在服务器端进行 new ServerSocket(port)(port 是一个 0,65536 的整型值)操作时异常的原因是以为与 port 一样的一个端口已经被启动, 并进行监听此时用 netstat an 命令, 可以看到一个 Listending 状态的端口只需要找一个没有被占用的端口就能解决这个问题
java.net.SocketException: Socket is closed
(同客户端)
java.net.SocketException: (Connection reset 或者 Connect reset by peer:Socket write error)
(同客户端)
java.net.SocketException: Broken pipe
来源: http://www.phperz.com/article/18/0206/359245.html