我需要發送一個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. java將int轉換爲short
- 2. Try-catch short-circuit/fall-through java
- 3. 的Java實例Short對象在Java中
- 4. Foldl for short with short circuiting
- 5. mysql short union
- 6. Java - Reverse Word Order,Vector
- 7. 將MongoDB BasicDBList轉換爲Java short [] Array
- 8. Java HashSet和數據類型Short,incompatibility?
- 9. Ionic Network type = null
- 10. WinService,startup和network
- 11. 引起:java.lang.IllegalArgumentException:provider = network
- 12. Mobile Adhoc NETwork
- 13. Tablecell click short delay
- 14. Stream of short []
- 15. Gitlab CI Docker Network timeout
- 16. Network timeout..cannot pull images
- 17. Google Analytics for short urls
- 18. C#short if語句
- 19. Short Open Tag和<?=
- 20. MySQL,Short WHERE查詢
- 21. ThreeJS oribital camera short rotation
- 22. C#List Order Order
- 23. C++中的short和SHORT有什麼區別?
- 24. unsigned short int和unsigned short之間的區別
- 25. 正在加載Java Applet ... network:未找到高速緩存條目
- 26. Amazon Instance Network Out Spike(Attacked?)
- 27. 爲什麼-use-network = false
- 28. npm「error network getaddrinfo ENOTFOUND registry.npmjs.org」
- 29. 碼頭未知標誌:--network
- 30. '誰在線?' Ruby Network Program