【发布时间】:2012-08-29 14:18:14
【问题描述】:
我在我的套接字上使用 ObjectOutputStream,因为我创建了一个需要在客户端和服务器之间传输的新类。 我还创建了一个独特的线程,它每秒通过流向服务器发送一个字节,以便持续检查连接并检查其是否处于活动状态。
byte b=1;
oos.writeObject(b);
我使用“字节”是因为它是我可以发送的最小对象(对吗?),这样服务器就不会读取更长的对象。
我的问题是服务器是读取一个字节对象(字节大小)还是一个 8 字节对象(对象大小) ?
【问题讨论】:
-
一个字节不是你可以发送的最小对象;有点是。一个字节由 8 位组成。布尔值等价于字节。使用
writeObject将导致类、类签名和可序列化字段也写入流,因此大小会有所不同;对于 Byte 对象,我建议您自行测试。 -
你的意思是一个对象的大小是 8 字节?
-
不幸的是,您无法在 Java 中发送/接收一位。您可以做的最好的事情是将 8 个单独的位打包成一个字节并发送该字节并解压缩另一侧的位,这可用于在一个字节中发送多达 8 个真/假 (1/0) 值8 个字节的值 1 或 0。
标签: java object byte objectoutputstream