Java中Connection timed out和Connection refused的區(qū)別講解
前言:這兩個(gè)異常報(bào)出的時(shí)候,說明客戶端沒法正常連接到服務(wù)端,但是兩者還是有區(qū)別的。
1:Connection timed out
在實(shí)際開發(fā)中經(jīng)常會(huì)碰到Connection timed out的問題
java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at ClientSocketTimeout.main(ClientSocketTimeout.java:8)
當(dāng)?shù)玫?nbsp;Connection timed out: connect 的時(shí)候表示TCP路由不正常,原因有很多,可能是服務(wù)器無法ping通,可能是服務(wù)器(防火墻等)丟棄了該請求報(bào)文包,也可能是服務(wù)器應(yīng)答太慢,又或者存在間歇性的問題(這種情況很難從日志文件中排查問題)。
2:Connection refused
當(dāng)?shù)玫?code>Connection refused: connect 異常的時(shí)候表示從本地客戶端到目標(biāo)IP地址的路由是正常的,但是該目標(biāo)端口沒有進(jìn)程在監(jiān)聽,然后服務(wù)端拒絕掉了連接。
一個(gè)成功的tcp鏈接將會(huì)看到Syn,Syn-Ack,Ack,這也就是我們預(yù)期的TCP三次握手。當(dāng)使用tcpdump或wireshark抓包工具來探測發(fā)送過來的請求報(bào)文包時(shí),Connection refused將會(huì)看到Syn,Rst。
Connection refused問題排查
1. 查看防火墻是否打開,如防火墻打開,端口是否開放
2. 查看服務(wù)端是否正常運(yùn)行
3. 查看服務(wù)端監(jiān)聽的端口與客戶端訪問的端口是否一致
jps | grep [appname]
netstat -anp | grep [pid]
4. ping hostname, telnet hostname port
5. 檢查客戶端訪問的hostname和port是否正確
6. 檢測服務(wù)端監(jiān)聽端口是host是否使用了127.0.0.1/localhost
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- Java為什么匿名內(nèi)部類參數(shù)引用需要用final進(jìn)行修飾?
- 詳解Java中IO字節(jié)流基本操作(復(fù)制文件)并測試性能
- 關(guān)于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法
- Java中轉(zhuǎn)換器設(shè)計(jì)模式深入講解
- 編寫Java代碼對HDFS進(jìn)行增刪改查操作代碼實(shí)例
- Java中數(shù)組在內(nèi)存中存放原理的講解
- Java多線程——之一創(chuàng)建線程的四種方法
- java集合與數(shù)組的相同點(diǎn)和不同點(diǎn)
- Java網(wǎng)絡(luò)通信中ServerSocket的設(shè)計(jì)優(yōu)化方案
- Java反射機(jī)制的講解
相關(guān)文章
解決SpringBoot 測試類無法自動(dòng)注入@Autowired的問題
這篇文章主要介紹了解決SpringBoot 測試類無法自動(dòng)注入@Autowired的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Java使用 Stream 流和 Lambda 組裝復(fù)雜父子樹形結(jié)構(gòu)
在最近的開發(fā)中,遇到了兩個(gè)類似的需求:都是基于 Stream 的父子樹形結(jié)構(gòu)操作,返回 List 集合對象給前端,下面給大家分享Java使用 Stream 流和 Lambda 組裝復(fù)雜父子樹形結(jié)構(gòu)的相關(guān)操作,感興趣的朋友跟隨小編一起看看吧2024-07-07
RabbitMQ?延遲隊(duì)列實(shí)現(xiàn)訂單支付結(jié)果異步階梯性通知(實(shí)例代碼)
這篇文章主要介紹了RabbitMQ?延遲隊(duì)列實(shí)現(xiàn)訂單支付結(jié)果異步階梯性通知,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問題
這篇文章主要介紹了解決springboot項(xiàng)目不配置數(shù)據(jù)源啟動(dòng)報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringMVC使用ResponseEntity實(shí)現(xiàn)文件上傳下載
這篇文章主要為大家介紹了SpringMVC使用ResponseEntity實(shí)現(xiàn)文件上傳下載,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Java開發(fā)編程到底是用idea好還是eclipse好
這篇文章主要介紹了Java開發(fā)編程到底是用idea好還是eclipse好,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
springboot + mybatis配置多數(shù)據(jù)源示例
本篇文章主要介紹了springboot + mybatis配置多數(shù)據(jù)源示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03

