簡體   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