繁体   English   中英

为什么Java中tcp / ip消息的字节数组的最后一个元素为0?

[英]Why the last element of tcp/ip message's byte array in java is 0?

我正在从客户端向服务器发送字节数组。 客户端的字节数组为:

0 52 2 0 72 3c 5 80 0 c0 0 8 10 c 22 38 4e 5b 15 1f 29 1e 0 0 0 0 0 0 a 0 b 16 21 2c 37 c
22 38 20 41 62 2 1c 11 1 0 15 4 2c 0 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30
30 30 30 30 31 35 0 9 4d 79 20 50 61 72 73 65 72 

但是服务器收到的字节数组是:

0 52 2 0 72 3c 5 80 0 c0 0 8 10 c 22 38 4e 5b 15 1f 29 1e 0 0 0 0 0 0 a 0 b 16 21 2c 37 c
22 38 20 41 62 2 1c 11 1 0 15 4 2c 0 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30
30 30 30 30 31 35 0 9 4d 79 20 50 61 72 73 65 0

请尽快通知我。

您没有提供任何代码,这使得诊断起来很困难,但是我怀疑您忽略了InputStream.read()的返回值,该值指示已读取多少字节。

消息很可能被网络破坏了,您需要发出多个read()调用才能全部提取消息。 您应注意read()的返回值,并忽略相关范围之外的任何字节。

要么就是这样,要么您实际上没有正确发送数据,这可能是由于一次关闭错误所致。 再说一次-没有代码,这很难说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM