解决方法,没次用完ObjectInputStream或ObjectInputStream都得重新new
报错代码如下Runnable 是java 的线程接口
class SocketClient implements Runnable {
public Socket s = null;
public ObjectInputStream ois = null;
public ObjectOutputStream oos = null;
public SocketClient(Socket s) {
this.s = s;
try {
this.ois = new ObjectInputStream(s.getInputStream());
this.oos = new ObjectOutputStream(s.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
while (true) {
//业务逻辑
}
}
}
解决方案把这两句搬到***run方法的while(true)***里面 这样每次发送数据和接受数据完成后就又会重新new了,就不会报错
this.ois = new ObjectInputStream(s.getInputStream()); this.oos = new ObjectOutputStream(s.getOutputStream());
最后解决问题的代码如下
class SocketClient implements Runnable {
public Socket s = null;
public ObjectInputStream ois = null;
public ObjectOutputStream oos = null;
public SocketClient(Socket s) {
this.s = s;
}
@Override
public void run() {
while (true) {
//业务逻辑
try {
this.ois = new ObjectInputStream(s.getInputStream());
this.oos = new ObjectOutputStream(s.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}



