【发布时间】:2011-02-03 05:09:39
【问题描述】:
我正在尝试对我的程序进行编码,以便缓冲阅读器从我的 tcp 客户端获取 readLine() 中的某些内容,但是一旦程序执行,我就会收到此错误
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)
以下代码中的 car=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;
}
【问题讨论】:
-
你能发布一些给你这个错误的代码吗?
-
请查看此链接blogs.sun.com/oleksiys/entry/… 这里提到了一种情况,例如在某些请求发送到服务器后连接关闭。因此,当您尝试接收数据时,您会收到此异常
-
@sreejith 博客搞错了。如果对等方关闭连接,则异常将读取“对等方重置连接”。这是“软件导致的连接中止”。不同的东西。