在Java中通过套接字发送int的最佳方法是什么?现在我正在看
sockout.write((byte)( length >> 24 ));
sockout.write((byte)( (length << 8) >> 24 ));
sockout.write((byte)( (length << 16) >> 24 ));
sockout.write((byte)( (length << 24) >> 24 ));
然后尝试从另一侧的字节重建int,但它似乎不起作用。有什么想法吗?
感谢。
答案 0 :(得分:27)
用DataOutputStream换取OutputStream
,然后使用writeInt()
方法。
其他可能有用的是,另一方面,您可以将InputStream
包裹在DataInputStream中,然后使用readInt()
来阅读int
。< / p>
这两个类还包含许多其他有用的方法来读取和编写其他原始类型。
答案 1 :(得分:3)
您可以使用其他类型的流,可以直接发送整数。您可以使用DataOutputStream。观察,
DataOutputStream out;
try {
//create write stream to send information
out=new DataOutputStream(sock.getOutputStream());
} catch (IOException e) {
//Bail out
}
out.writeInt(5);
答案 2 :(得分:0)
如果您要发送少量数据,那么编码为字符数据(例如Integer.toString(length)
)并在另一端解码并非不合理。