public class SocketTransfer { private BufferedOutputStream out; //
// 初始化out = new BufferedOutputStream(socket.getOutputStream());
// //
// 略去
// public synchronized void send(Object msg) throws IOException {
ObjectOutputStream os= new ObjectOutputStream(out);
os.writeObject(msg);
out.flush();
//System.out.println("Message sent.");
}
}不是很明白你真正的意思,但这样每次都可以new一个ObjectOutputStream处理。
// 初始化out = new BufferedOutputStream(socket.getOutputStream());
// //
// 略去
// public synchronized void send(Object msg) throws IOException {
ObjectOutputStream os= new ObjectOutputStream(out);
os.writeObject(msg);
out.flush();
//System.out.println("Message sent.");
}
}不是很明白你真正的意思,但这样每次都可以new一个ObjectOutputStream处理。
server必须保持与socket的在线状态,不是即时处理并关闭。to whiteshen(White.SHEN):
就是第二次对out调用new ObjectOutputStream(out)的时候,客户端的socket就抛出StreamCorruptedException
是每次都重复创建ObjectOutputStream的问题。 把他封到一个函数里,所有的发送都由这个函数来, 就oK了