91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

報錯JAVA.NET.SOCKETEXCEPTION: SOFTWARE CAUSED CONNECTION ABORT: RECV FAILED如何解決

發布時間:2021-07-02 16:18:25 來源:億速云 閱讀:1559 作者:chen 欄目:大數據

這篇文章主要講解了“報錯JAVA.NET.SOCKETEXCEPTION: SOFTWARE CAUSED CONNECTION ABORT: RECV FAILED如何解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“報錯JAVA.NET.SOCKETEXCEPTION: SOFTWARE CAUSED CONNECTION ABORT: RECV FAILED如何解決”吧!

產生這個異常的原因有多種方面,單就如 Software caused 所示, 

是由于程序編寫的問題,而不是網絡的問題引起的. 

已知會導致這種異常的一個場景如下: 
客戶端和服務端建立tcp的短連接,每次客戶端發送一次請求, 
服務端響應后關閉與客戶端的連接. 
如果客戶端在服務端關閉連接后,沒有釋放連接,繼續試圖發送請求和接收響應. 
這個時候就會出錯. 

這個時候客戶端Socket的getOutputStream返回來的OutPutStream維護 
的是本地的連接狀態, 
無法知道遠程的服務端已經關閉了對應的InputStream和socket因此 
雖然調用了 
out.write(sendbuf, 0, sendbuf.length); 
方法,但是實際上服務端并沒有接收到客戶端的請求信息. 
因為沒有拋出異常,因此造成了誤以為客戶端請求發送成功的假象. 

接下來調用etInputStream的in.read(header, 0, 14);方法. 
因為這次要讀取服務端的信息,因此產生了 
Software caused connection abort: recv failed的異常 

總結產生原因,在服務端/客戶端單方面關閉連接的情況下,另一方依然以為 
tcp連接仍然建立,試圖讀取對方的響應數據,導致出現 
Software caused connection abort: recv failed的異常. 

因此在receive數據之前,要先判斷連接狀態. 
通過inputstream的available()方法來判斷,是否有響應結果. 
如果available()的返回值為0,說明沒有響應數據,可能是對方已經斷開連接, 
如果available()的返回值大于0,說明有響應數據. 
另外值得注意的是available()返回的值是非堵塞的,可以被多個線程訪問 

在對方釋放連接后,也要釋放本地的連接

感謝各位的閱讀,以上就是“報錯JAVA.NET.SOCKETEXCEPTION: SOFTWARE CAUSED CONNECTION ABORT: RECV FAILED如何解決”的內容了,經過本文的學習后,相信大家對報錯JAVA.NET.SOCKETEXCEPTION: SOFTWARE CAUSED CONNECTION ABORT: RECV FAILED如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵台县| 巴彦淖尔市| 巴南区| 扎兰屯市| 平武县| 土默特左旗| 黄陵县| 安国市| 南昌市| 耒阳市| 鄢陵县| 卢龙县| 六枝特区| 南木林县| 安塞县| 伊金霍洛旗| 铜川市| 永吉县| 高台县| 靖宇县| 保靖县| 龙里县| 房山区| 盐城市| 盐池县| 和林格尔县| 雷波县| 张家口市| 东明县| 华容县| 贺州市| 隆安县| 宝兴县| 巫山县| 油尖旺区| 娱乐| 德钦县| 博兴县| 乌兰察布市| 桑植县| 育儿|