请教:用ObjectInputStream实现socket通讯问题。
我在客户端写入后,服务器端读取时总是异常(从IOException分支抛出):
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2133)
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2423)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2433)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1245)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at com.verywill.go.net.server.GoServer.fk(GoServer.java:55)
at com.verywill.go.net.server.GoServer.main(GoServer.java:100)
客户端建立连接并写入数据代码:
public void test() {
String host = "127.0.0.1";
int port = 12349;
Socket s = new Socket(host, port);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
String msg = "hello worldd";
out.writeObject(msg);
}
catch (UnknownHostException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
服务器端得到连接并读取客户端数据代码:
public void servrTest() {
while (true) {
try {
Socket client = this.server.accept();
ObjectInputStream in = new ObjectInputStream(client.
getInputStream());
ObjectOutputStream out = new ObjectOutputStream(client.
getOutputStream());
String msg = (String) in.readObject();
System.out.println(msg);
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
请大家帮忙啊,实在不知道该怎么解决:(