sockets java。木卫一。StreamCorruptedException:流标头无效
我正在编写一个socket客户端,其中我正在向服务器发送数据(使用getOutputStream()),下面是我的代码
this.wr = this.socket.getOutputStream();
wr.write(hexStringToByteArray(messageBody));
wr.flush();
以上是成功发送数据。 1) 但是当我试着用
this.in = new ObjectInputStream(this.socket.getInputStream());
因为我不知道服务器返回的是什么格式。这一行有错误
“java.io.StreamCorruptedException:流标头无效”
我不知道为什么?我知道我将接收的值将采用十六进制格式,即 假设600185和600186一样
谁能帮我克服这个错误
2)如果在一定时间后没有收到任何响应,如何关闭socket连接
提前谢谢大家
# 1 楼答案
ObjectInputStream要求流中有一个由ObjectOutputStream写入的头。所以,如果你使用一个,你需要同时使用两个
由于您的示例并不真正需要ObjectOutputStream,您可能只想不使用ObjectInputStream
比如: