因为我发现在java中无法使用无符号字节,并且它们基本上占用了与int相同的内存,所以当你通过数据包发送它们时真的有什么不同吗?
如果我通过tcp或udp 通过(Games.RealTimeMultiplayer.sendReliableMessage)发送一个Java字节这对我来说比仅发送一个整数来表示无符号字节更有益吗?
答案 0 :(得分:3)
因为我发现在java中无法使用无符号字节
这是不正确的。有很多方法。您甚至可以使用byte
来表示无符号字节。您只需要在需要它的地方执行映射; e.g。
byte b = ...
int unsigned = (b >= 0) ? b : (b + 256);
......基本上它们占用与int相同的内存。
这也是不正确的。 byte
变量或字段都是如此。但是,byte
数组中的字节占int
数组中整数空间的1/4。
...当你通过数据包发送它们时真的有什么不同吗?
是的。通过网络发送的byte
(以自然方式)占用通过网络发送的int
的比特数的1/4。如果您将“8位数量”发送为32位,则会浪费网络带宽。