Java中Connection timed out和Connection refused的區(qū)別講解
前言:這兩個異常報出的時候,說明客戶端沒法正常連接到服務端,但是兩者還是有區(qū)別的。
1:Connection timed out
在實際開發(fā)中經(jīng)常會碰到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)
當?shù)玫?nbsp;Connection timed out: connect 的時候表示TCP路由不正常,原因有很多,可能是服務器無法ping通,可能是服務器(防火墻等)丟棄了該請求報文包,也可能是服務器應答太慢,又或者存在間歇性的問題(這種情況很難從日志文件中排查問題)。
2:Connection refused
當?shù)玫?code>Connection refused: connect 異常的時候表示從本地客戶端到目標IP地址的路由是正常的,但是該目標端口沒有進程在監(jiān)聽,然后服務端拒絕掉了連接。
一個成功的tcp鏈接將會看到Syn,Syn-Ack,Ack,這也就是我們預期的TCP三次握手。當使用tcpdump或wireshark抓包工具來探測發(fā)送過來的請求報文包時,Connection refused將會看到Syn,Rst。
Connection refused問題排查
1. 查看防火墻是否打開,如防火墻打開,端口是否開放
2. 查看服務端是否正常運行
3. 查看服務端監(jiān)聽的端口與客戶端訪問的端口是否一致
jps | grep [appname]
netstat -anp | grep [pid]
4. ping hostname, telnet hostname port
5. 檢查客戶端訪問的hostname和port是否正確
6. 檢測服務端監(jiān)聽端口是host是否使用了127.0.0.1/localhost
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
解決SpringBoot 測試類無法自動注入@Autowired的問題
這篇文章主要介紹了解決SpringBoot 測試類無法自動注入@Autowired的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Java使用 Stream 流和 Lambda 組裝復雜父子樹形結構
在最近的開發(fā)中,遇到了兩個類似的需求:都是基于 Stream 的父子樹形結構操作,返回 List 集合對象給前端,下面給大家分享Java使用 Stream 流和 Lambda 組裝復雜父子樹形結構的相關操作,感興趣的朋友跟隨小編一起看看吧2024-07-07
RabbitMQ?延遲隊列實現(xiàn)訂單支付結果異步階梯性通知(實例代碼)
這篇文章主要介紹了RabbitMQ?延遲隊列實現(xiàn)訂單支付結果異步階梯性通知,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
解決springboot項目不配置數(shù)據(jù)源啟動報錯問題
這篇文章主要介紹了解決springboot項目不配置數(shù)據(jù)源啟動報錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringMVC使用ResponseEntity實現(xiàn)文件上傳下載
這篇文章主要為大家介紹了SpringMVC使用ResponseEntity實現(xiàn)文件上傳下載,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
Java開發(fā)編程到底是用idea好還是eclipse好
這篇文章主要介紹了Java開發(fā)編程到底是用idea好還是eclipse好,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
springboot + mybatis配置多數(shù)據(jù)源示例
本篇文章主要介紹了springboot + mybatis配置多數(shù)據(jù)源示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03

