原标题:Java网络编程五个常见的异常发生及对应的解决方案

盛夏,时光轻缓

花开无语,淡香如故

三伏天已经到了,你的《盛夏》是什么样子?

空调WiFi西瓜,葛优同款沙发

夕阳西下,我打开电脑学 java ……

Java作业回超时是什么意思 java 超时异常_解决方案

在Java网络编程中,我们经常性的会碰到一些异常,有些异常是我们反复碰见的,下面整理几条常见的异常,供大家参考交流。

Java作业回超时是什么意思 java 超时异常_java异常对应_02

1.java.net.

SocketTimeoutException

出现原因:这个异常表示很常见,原因就是Socket超时。

解决方案:一般会有2个地方会抛出这个异常,一个是在Connect的时候,由connect(SocketAddressendpoint,inttimeout)中的后者来决定;另外一个就是setSoTimeout(inttimeout),这个是设定读取的超时时间,它们设置成0均表示无限大。

Java作业回超时是什么意思 java 超时异常_客户端_03

2.java.net.

BindException:Address already in use: JVM_Bind

出现原因:该异常发生在服务端进行NewServerSocket(Port)或者Socket.bind(bingPort)操作的时候,原因就是与Port一样的一个端口已经被启动,并进行监听。

解决方案:此时呢,我们可以用netstat-an的命令,可以监听到一个Listending状态的端口。只需要找一个没有被占用的端口就能解决问题。或者,我们在使用端口前,优先去查看哪些端口不能使用。(注:Port值为0-65536的整型值)

Java作业回超时是什么意思 java 超时异常_Java作业回超时是什么意思_04

3.java.net.

ConnectException: Connection refused: connect

出现原因:该异常发生在客户端进行newSocket(Ip,Port)或者socket.connect(address,timeout)操作时,原因就是指定的ip地址不能被找到,或者说ip地址存在,但是找不到对应的端口进行监听。

解决方案:首先检查客户端的ip和port是否写错了,假如正确可以测试客户端和服务器端时候可以ping通,如果可以ping通,则在服务端重新找一个可以用的端口;如果ping不通,则需要另外想办法了。

Java作业回超时是什么意思 java 超时异常_java_05

4.java.net.

SocketException: Socket is closed

出现原因:该异常在客户端和服务器端均可能发生,原因就是,客户端或者服务器端主动关闭了链接,Spcket的close方法,随后再次对网络链接进行一系列操作。

解决方案:首先我们要弄清楚主动关闭链接的原因,杜绝以后再次被关闭的可能性;然后我们重启客户端和Server端,重新建立通讯即可。

Java作业回超时是什么意思 java 超时异常_java异常对应_06

5.java.net.

SocketException:Connection reset或者

Connect reset by peer:Socket write error

出现原因:该异常在客户端和服务器端均可能发生,引发该异常有两个原因:①如果一端的Socket被关闭(主动或者异常引起的关闭)后,另一方还在继续放松数据,发送的第一个数据包机会引发异常Connectresetbypeer;②另一个是端退出,但退出时为关闭链接,另一端从连接中读取数据则抛出异常Connectionreset.总结一下便是,因为由链接断开后的读和写操作引起的。

解决方案:解决方案如4中的类似,一定要弄清楚一端关闭原因,不要只是简单的重启就解决眼前问题。

Java作业回超时是什么意思 java 超时异常_解决方案_07

每天进步一点点,每天消化一点点。希望这篇文章对你有帮助,欢迎订阅。