我需要發送一個Network Order,簡稱爲使用Java編寫的遊戲服務器。我閱讀了網絡訂單,但是我無法找到有關在數據前發送的短消息的任何詳細信息。有人可以向我解釋它是什麼,以及如何使用Java將其發送給客戶端?Network Order short(Java)
3
A
回答
6
Java NIO字節緩衝區支持更改字節順序。因此網絡字節順序是Big Endian。
// Allocate a big endian byte buffer
ByteBuffer bb = ByteBuffer.allocate(4096);
bb.order(ByteOrder.BIG_ENDIAN);
bb.putShort(12345);
// Write the buffer to an NIO channel
bb.flip();
channel.write(bb);
字節順序是存儲大於單個字節的數值字節的順序。有兩種風格的Big Endian(最重要的字節在前)和Little Endian(最低有效字節在前)。
1
在java中,short int是一個2字節的數量。網絡字節順序首先發送高位字節,然後發送下一個最高位字節,依此類推,最後發送低位字節。如果你有一個OutputStream o
和short i
,然後
o.write((i >> 8) & 0xff);
o.write(i & 0xff);
發送網絡字節順序短。我推薦使用DataOutputStream
,它有一個方法writeShort()
(和writeInt
,writeLong
等),它會自動按網絡字節順序寫入。
0
你可以用DataOutputStream封裝你的OutputStream。可以使用DataOutputStream.writeShort。按合同,該方法按網絡順序寫入數據。
相關問題
- 1. Try-catch short-circuit/fall-through java
- 2. java將int轉換爲short
- 3. 的Java實例Short對象在Java中
- 4. Foldl for short with short circuiting
- 5. mysql short union
- 6. Java - Reverse Word Order,Vector
- 7. 將字節[]讀取爲unsigned short Java
- 8. 將MongoDB BasicDBList轉換爲Java short [] Array
- 9. Java如何使用inputstream讀取unsigned short?
- 10. 將int轉換爲unsigned short java
- 11. 如何在java中存儲unsigned short?
- 12. Java HashSet和數據類型Short,incompatibility?
- 13. LINQ:不能將short轉換爲short嗎?
- 14. Mobile Adhoc NETwork
- 15. Ionic Network type = null
- 16. 引起:java.lang.IllegalArgumentException:provider = network
- 17. Google Affiliate Network API
- 18. WinService,startup和network
- 19. Cast char to short
- 20. C++ short *到VARIANT_BOOL *
- 21. Tablecell click short delay
- 22. Rails short「time_ago_in_words」
- 23. Stream of short []
- 24. 解析/ etc/network/interfaces
- 25. npm「error network getaddrinfo ENOTFOUND」
- 26. PyAudio Over Network崩潰
- 27. Gitlab CI Docker Network timeout
- 28. Network timeout..cannot pull images
- 29. C#short if語句
- 30. MySQL,Short WHERE查詢