我試圖編寫我的程序,以便緩衝讀取器從我的tcp客戶端獲取readLine()中的某些內容,但出現此錯誤一旦程序執行BufferedReader.readLine()給出錯誤java.net.SocketException:軟件導致連接中止:recv失敗
Mar 31, 2010 11:03:36 PM deswash.DESWashView$5 run
SEVERE: null
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at deswash.DESWashView$5.run(DESWashView.java:448)
轎廂= in.readLine()在下面的代碼引發錯誤
public void getCar(){
Thread gettingCars = new Thread(){
@Override
public void run(){
try {
car = in.readLine();
if(!(car.equals(null))){
StringTokenizer st = new StringTokenizer(car,";");
int carTime = Integer.parseInt(st.nextToken());
finTime.setText(""+((Integer.parseInt(currentTime.getText()))+washTime));
currentTime.setText(""+carTime);
eventTextArea.append(""+car+"\n");
}
} catch (IOException ex) {
Logger.getLogger(DESWashView.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
gettingCars.start();
doOnce=false;
}
可以請你發佈一些給你這個錯誤的代碼嗎? – Hector 2010-04-01 03:10:52
請檢查此鏈接 http://blogs.sun.com/oleksiys/entry/strange_software_caused_connection_abort 這裏提到了一個場景,就像連接關閉後,一些請求發送到服務器。因爲這一點,當你試圖接收數據,你會得到這個異常 – sreejith 2010-04-01 05:54:50
@sreejith博客是錯誤的。如果對等方關閉連接,則例外將讀取「由對等方重置連接」。這是'軟件導致連接中止'。不同的東西。 – EJP 2013-06-06 03:00:32