请教:用ObjectInputStream实现socket通讯问题。

HelloWorldd HelloWorldd 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在客户端写入后,服务器端读取时总是异常(从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();
}
}
}

请大家帮忙啊,实在不知道该怎么解决:(
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
HelloWorldd
Java EE 67,535 成员 225,843 内容