【发布时间】:2014-01-26 15:10:03
【问题描述】:
服务器代码
if(success){
out.write("true".getBytes().length);
out.write("true".getBytes());
out.flush();
}
else{
out.write("false".getBytes().length);
out.write("false".getBytes());
out.flush();
}
客户代码
int size = inputStream.read();
byte[] buf = new byte[size];
inputStream.read(buf);
ns = new String(buf);
Boolean.valueOf(ns);
虽然服务器发送结果客户端读错了。这里有什么问题?我该如何解决。例如,服务器发送值为真,但客户端将其接收为假
【问题讨论】:
-
“读错了”并没有给我们任何信息。老实说,这里有各种各样的错误,例如使用平台默认编码,假设所有字符串都小于 256 字节,对数据进行两次编码,假设一次调用
read(byte[])将读取所有数据等。考虑改用DataOutputStream...
标签: java sockets io inputstream bytebuffer