在C#中有網絡到主機的轉換功能嗎?谷歌搜索,並沒有找到太多。 :Pntohs()和ntohl()是否相等?
28
A
回答
37
IPAddress.HostToNetworkOrder
and IPAddress.NetworkToHostOrder
?
每種方法都有16位,32位和64位整數的重載。
0
@jon-skeet's answer是根據您的問題最準確。然而,'ntoh_'和'hton_'C函數被廣泛用於翻譯。
如果你的目的是進行字節序轉換,有一個BitConverter class(核心組件的靜態類),爲您帶來一個更合適的方式。特別是當:
- 使用字節數組(廣泛用於文件或網絡流)。
- Detecting endianess運行機器的體系結構。
- 將基本結構轉換爲整數(布爾值,小數)而不使用類型轉換。
- 您的代碼與網絡操作(System.Net命名空間)無關。
+4
,只是該類不具有與htonl等效的功能。我必須得到字節,反轉它們,然後轉換回 – pm100
+1
'BitConverter'不支持任何非本地字節序。 (至少內置的不是,Jon或Marc做出了更強大的功能 - 但是製作垃圾臨時陣列仍然是浪費) –
相關問題
- 1. 什麼時候在C中使用ntohs和ntohl?
- 2. 增強是否使用ntohl/htonl/ntohs/htons類型函數的便攜方式?
- 3. Mathf.Ceil和Mathf.CeilToInt是否相等?
- 4. Interlocked.CompareExchange是否相等?
- 5. ntohs和()的問題
- 6. equals()方法和==是否相等或不相等?
- 7. String比較null和empty是否相等
- 8. boost :: next和std :: next是否相等?
- 9. 檢查對是否相等
- 10. 檢查ForeignKeys是否相等
- 11. 確定樹是否「相等」
- 12. 這是if語句是否相等?
- 13. htonl和ntohl在windows中有相同的地址嗎?
- 14. htonl()和ntohl()在整數上的輸出相同
- 15. objective-c檢查float和int是否相等 - 是2.0000 == 2
- 16. 是C#的CultureInfo.InvariantCulture和Java的Locale.ROOT是否相等?
- 17. 測試兩個PersistenceContexts是否相等
- 18. 確定兩個複數是否相等
- 19. C++檢查數據是否相等
- 20. Python,條件 - 這些是否相等?
- 21. C宏:#if檢查是否相等
- 22. 3NF的定義是否相等?
- 23. 在VBscript中是否存在「\ n」相等?
- 24. 檢查兩個位置是否相等
- 25. Mysql - 自加入檢查是否相等
- 26. 這兩個表達式是否相等
- 27. 在MongoDB中是否存在SEQUENCE相等
- 28. 檢查變量是否與jquery相等
- 29. 測試兩個對象是否相等
- 30. 檢查兩個「select」是否相等
我假設這兩種方法做同樣的事情。我注意到重載只適用於簽名的東西。他們在未簽名的東西上安全嗎? – pm100
@ pm100:你會期望他們是自我反向的,是的。我不希望聲稱絕對的事實,雖然:)不知道你的意思是「安全的無符號的東西」 - 你必須先施放,在這一點上,它不會被無符號... –
第一 - 因爲他們工作的很多東西都是IP地址這些未簽名的事情,令人驚訝的是uint32沒有重載等等。'安全'我的意思是我對鑄造簽名爲無符號,小心擺弄位和通常這是一個符號傳播/截斷的配方,...... wiednesses – pm100