在Java中通过socket发送int

时间:2009-09-17 06:01:38

标签: java networking sockets integer

在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,但它似乎不起作用。有什么想法吗?

感谢。

3 个答案:

答案 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))并在另一端解码并非不合理。