|
Connection reset,Connection reset by peer,Software caused connection abort :socket write error
java.net.SocketException:Connection reset by peer: socket write error java.net.SocketException:Connection reset java.net.SocketException:Software caused connection abort :socket write error
java.net.SocketException: Software caused connection abort: recv failed
Please tell me when reading from a socket connection how an IOExcption with "Connection reset " message can occur. I am basically connecting to a Windows server program . Now I am using this exception for detecting invalid user login So i want know that what are the other ways this exception can occur ,
please help me . thanks and regards haix
http://forum.java./thread.jspa?threadID=560591&messageID=2755358
http://forum.java./thread.jspa?threadID=430179&messageID=4429682
http://forum.java./thread.jspa?threadID=609696&messageID=3341613
小弟我用java實(shí)現(xiàn)了一個(gè)聯(lián)通SGIP發(fā)送,接收短信的程序。 不過在接收過程中,由于聯(lián)通發(fā)送完deliver命令后要間隔16秒才發(fā)送unbind命令,此時(shí)作為服務(wù)器端的我的程序拋出 java.net.socketexception connection reset錯(cuò)誤! 因?yàn)槲以诮邮諗?shù)據(jù)的時(shí)候inputstread.read(bytes[])是一個(gè)阻塞函數(shù),如果沒有接收到輸入流就會(huì)阻塞住不動(dòng),但是錯(cuò)誤的信息應(yīng)該是socket已經(jīng)斷開。所以讓我很奇怪,搞了一周也沒有解決這個(gè)問題,請(qǐng)大伙幫忙??!
http://topic.csdn.net/u/20080319/10/0285f5b9-5035-4022-8c3a-5ddc18637777.html
Connection reset by peer web 程序的服務(wù)器段,在鏈接數(shù)據(jù)庫(kù)的時(shí)候被同一個(gè)“對(duì)等點(diǎn)”重置了。對(duì)等點(diǎn)重置的意思其實(shí)就是被同一個(gè)權(quán)限相同的管理員或者是程序給強(qiáng)制占用了權(quán)限,好像目前 連接被斷了一樣,實(shí)際上這個(gè)時(shí)候連接并沒有斷開,是被“重置”了。就是能找到連接,但程序之間比較笨,自己找不到失去的那個(gè)連接了。 “連接被對(duì)等點(diǎn)(peer)重置”,這時(shí),只要把防火墻關(guān)閉就好了。就是說暫時(shí)找不到那個(gè)以前的連接了,也許斷了,也許沒有斷,但就是找不到。
10053 您的主機(jī)中的軟件放棄了一個(gè)已建立的連接。 ////////////////////////////////////////////// 一個(gè)以建立的連接被用戶的主機(jī)上的軟件終止,可能是因?yàn)橐淮螖?shù)據(jù) 傳輸超時(shí)或者是協(xié)議錯(cuò)誤。還有就是不要再連接事件中發(fā)送消息
總結(jié)一下: 1.你的socket隊(duì)列中沒有空間了 2.receiver never acknowledges data sent on a datastream socket(接受者不承認(rèn)在數(shù)據(jù)流接口上發(fā)送的數(shù)據(jù)) 3.A connection will timeout if the local system doesn't receive an (ACK)nowledgement for data sent
Connection reset by peer 拋出的異常也有可能是客戶端中斷連接。 當(dāng)客戶端中斷連接的時(shí)候服務(wù)器也會(huì)拋出這個(gè)異常出來。
就是說客戶端正在連接的時(shí)候 突然終止 了連接,這樣,服務(wù)器端會(huì)拋出Connection reset by peer 異常出來
http://topic.csdn.net/u/20080402/16/7fe0a9c2-cef5-4756-8c45-157555cd0097.html
第 4個(gè)異常是java.net.SocketException: (Connection reset或者 Connect reset by peer:Socket write error)。該異常在客戶端和服務(wù)器端均有可能發(fā)生,引起該異常的原因有兩個(gè),第一個(gè)就是如果一端的Socket被關(guān)閉(或主動(dòng)關(guān)閉或者因?yàn)楫惓M顺龆?引起的關(guān)閉),另一端仍發(fā)送數(shù)據(jù),發(fā)送的第一個(gè)數(shù)據(jù)包引發(fā)該異常 (Connect reset by peer)。另一個(gè)是一端退出,但退出時(shí)并未關(guān)閉該連接,另一端如果在從連接中讀數(shù)據(jù)則拋出該異常(Connection reset)。簡(jiǎn)單的說就是在連接斷開后的讀和寫操作引起的。
http://topic.csdn.net/u/20080328/10/e08d894a-319a-4985-8407-50e103305e6c.html
我這里有關(guān)于網(wǎng)絡(luò)異常方面的建議,發(fā)上去大家學(xué)習(xí): 第 1個(gè)異常是java.net.BindException:Address already in use: JVM_Bind。該異常發(fā)生在服務(wù)器端進(jìn)行new ServerSocket(port)(port是一個(gè)0,65536的整型值)操作時(shí)。異常的原因是以為與port一樣的一個(gè)端口已經(jīng)被啟動(dòng),并進(jìn)行監(jiān) 聽。此時(shí)用netstat –an命令,可以看到一個(gè)Listending狀態(tài)的端口。只需要找一個(gè)沒有被占用的端口就能解決這個(gè)問題。
第 2個(gè)異常是java.net.ConnectException: Connection refused: connect。該異常發(fā)生在客戶端進(jìn)行 new Socket(ip, port)操作時(shí),該異常發(fā)生的原因是或者具有ip地址的機(jī)器不能找到(也就是說從當(dāng)前機(jī)器不存在到指定ip路由),或者是該ip存在,但找不到指定的端 口進(jìn)行監(jiān)聽。出現(xiàn)該問題,首先檢查客戶端的ip和port是否寫錯(cuò)了,如果正確則從客戶端ping一下服務(wù)器看是否能 ping通,如果能ping通(服務(wù)服務(wù)器端把ping禁掉則需要另外的辦法),則看在服務(wù)器端的監(jiān)聽指定端口的程序是否啟動(dòng),這個(gè)肯定能解決這個(gè)問題。
第3個(gè)異常是java.net.SocketException: Socket is closed,該異常在客戶端和服務(wù)器均可能發(fā)生。異常的原因是己方主動(dòng)關(guān)閉了連接后(調(diào)用了Socket的close方法)再對(duì)網(wǎng)絡(luò)連接進(jìn)行讀寫操作。
第 4個(gè)異常是java.net.SocketException: (Connection reset或者 Connect reset by peer:Socket write error)。該異常在客戶端和服務(wù)器端均有可能發(fā)生,引起該異常的原因有兩個(gè),第一個(gè)就是如果一端的Socket被關(guān)閉(或主動(dòng)關(guān)閉或者因?yàn)楫惓M顺龆?引起的關(guān)閉),另一端仍發(fā)送數(shù)據(jù),發(fā)送的第一個(gè)數(shù)據(jù)包引發(fā)該異常 (Connect reset by peer)。另一個(gè)是一端退出,但退出時(shí)并未關(guān)閉該連接,另一端如果在從連接中讀數(shù)據(jù)則拋出該異常(Connection reset)。簡(jiǎn)單的說就是在連接斷開后的讀和寫操作引起的。
第5個(gè)異常是 java.net.SocketException: Broken pipe。該異常在客戶端和服務(wù)器均有可能發(fā)生。在第4個(gè)異常的第一種情況中(也就是拋出SocketExcepton:Connect reset by peer:Socket write error后),如果再繼續(xù)寫數(shù)據(jù)則拋出該異常。前兩個(gè)異常的解決方法是首先確保程序退出前關(guān)閉所有的網(wǎng)絡(luò)連接,其次是要檢測(cè)對(duì)方的關(guān)閉連接操作,發(fā)現(xiàn)對(duì) 方關(guān)閉連接后自己也要關(guān)閉該連接。
客戶端錯(cuò)誤代碼10053 Software caused connection abort(軟件原因?qū)е逻B接中斷)
又涉及到一個(gè)問題就是阻塞函數(shù)和非阻塞函數(shù),阻塞Socket和非阻塞Socket
一 是阻塞函數(shù),一是非阻塞函數(shù)。所謂阻塞函數(shù),是指其完成指定的任務(wù)之前不允許程序調(diào)用另一個(gè)函數(shù),在Windows下還會(huì)阻塞本線程消息的發(fā)送。所謂非阻 塞函數(shù),是指操作啟動(dòng)之后,如果可以立即得到結(jié)果就返回結(jié)果,否則返回表示結(jié)果需要等待的錯(cuò)誤信息,不等待任務(wù)完成函數(shù)就返回
http://www./Lectures/002/Lecture-2.1.8/Lecture-2.1.8/new_page_15.htm
http://www./kenlistian/archive/2007/12/27/39746.html
http://hi.baidu.com/evenque/blog/item/1ccfc63ffc3527c17d1e7188.html
http://www.cic./jdx/lunwen/WinSockx.htm
Connection reset by peer的原因: 經(jīng)常出現(xiàn)的Connection reset by peer: 原因可能是多方面的,不過更常見的原因是: ①:服務(wù)器的并發(fā)連接數(shù)超過了其承載量,服務(wù)器會(huì)將其中一些連接Down掉; ②:客戶關(guān)掉了瀏覽器,而服務(wù)器還在給客戶端發(fā)送數(shù)據(jù); ③:瀏覽器端按了Stop 很多人都說是客戶端造成的,沒有辦法控制,是個(gè)比較郁悶的問題。
引起該問題的原因是由于此時(shí)Server端連接已經(jīng)被復(fù)位,而Client依然通過該連接在接收和發(fā)送數(shù)據(jù),在網(wǎng)上搜索了一下該錯(cuò)誤,發(fā)現(xiàn)該錯(cuò)誤引起的原因大都是防火墻的原因,嘿嘿,又學(xué)了一招。
socket, nio socket 及nio socket框架MINA總結(jié)
Windows Sockets Error Codes
http://msdn2.microsoft.com/en-us/library/ms740668.aspx
socket 通信有通信的規(guī)則, 如果你希望保持長(zhǎng)連接, 就應(yīng)該有個(gè)通信協(xié)議, 包括寫入\0也是規(guī)則的一部分, 傳完一個(gè)文件等待下一個(gè). 要可不保持長(zhǎng)連接, 可使用webservice, 這樣你的協(xié)議變的更為可讀, 更容易包裝成產(chǎn)品.
看你的程序希望read結(jié)束, 不象是希望保持長(zhǎng)連接的樣子, 暈ing
經(jīng)常出現(xiàn)的Connection reset by peer: 原因可能是多方面的,不過更常見的原因是: ①:服務(wù)器的并發(fā)連接數(shù)超過了其承載量,服務(wù)器會(huì)將其中一些連接Down掉; ②:客戶關(guān)掉了瀏覽器,而服務(wù)器還在給客戶端發(fā)送數(shù)據(jù); ③:瀏覽器端按了Stop 很多人都說是客戶端造成的,沒有辦法控制,是個(gè)比較郁悶的問題。
--------------------------------------------------------------------------------
這是網(wǎng)絡(luò)連接斷掉引起的,一般是由于通過了防火墻,而防火墻一般都會(huì)有超時(shí)的機(jī)制,在網(wǎng)絡(luò)連接長(zhǎng)時(shí)間不傳輸數(shù)據(jù)時(shí),會(huì)切斷這個(gè)TCP的session,這時(shí)就會(huì)導(dǎo)致Connection reset by peer error
http://topic.csdn.net/t/20060915/12/5024325.html
溝通非阻塞IO與阻塞IO - 輸入流溝通非阻塞IO與阻塞IO - 輸出流附加該問題的最近結(jié)論1.我使用MyEclipse單步調(diào)試,當(dāng)調(diào)試到inputStream 的時(shí)候,看變量,發(fā)現(xiàn)一個(gè)問題,那就是SocketInputStream的Channel是null,為什么那,我不知道又在網(wǎng)絡(luò)上找到幾句話粘貼到這里吧!如下"No buffer space available , recv failed"謝謝sandyen(杉葉)的回答,我在網(wǎng)上也搜到這個(gè),但是不是這個(gè)原因。 問題已解決,確實(shí)不是程序的問題。 netstat -an發(fā)現(xiàn)有大量的端口占用,監(jiān)聽很多機(jī)器的139,445端口。 確定機(jī)器中了震蕩波,下載補(bǔ)丁安裝重啟,問題解決。 導(dǎo)致這個(gè)異常的原因應(yīng)該是系統(tǒng)的socket大量的資源被占用, 導(dǎo)致沒有足夠的資源接收前臺(tái)上報(bào)或者回復(fù)的數(shù)據(jù)。http://topic.csdn.net/t/20060315/11/4615627.html
本文來自CSDN博客:http://blog.csdn.net/huang_w/archive/2009/08/02/4400858.aspx
另外一片文章:
http:///questions/585599/whats-causing-my-java-net-socketexception-connection-reset |
|
|