這個問題是純粹的teoretical,而不是正確的做法,但我們需要將char'x'轉換爲網絡格式嗎?我在所有情況下都會被吸引:總是/有時/從不 我個人認爲我應該但我需要確定,比你。通過套接字發送的字符
0
A
回答
3
沒有,char是一個字節值,因此字節順序並不重要
3
當你想它(字節序,再用ntohl ntohs和,等...),沒有。
基本上,我應該提出一個非網絡限制的警告:任何未附加其編碼的字符串都是不可讀的。
假設您通過網絡發送/存儲或不存儲字符串「Français」,'ç'必須使用字符編碼進行編碼。不指定字符編碼意味着如果您使用utf8對其進行編碼,但您的讀者認爲它是latin1,則它可以被讀爲「Franais」。
所以,你有兩種解決方案:
- 寫下一個規格爲你的應用程序只使用相同的字符編碼
- 將元數據上的頭某處指定爲未來的字符串編碼(如HTTP) 。
+0
是的,更一般地說任何*數據*不是附上它的編碼是不可讀的。這是超越網絡乃至計算機科學的基本規則。兩端需要共享相同的編碼/解碼規則或不能進行通信。 –
相關問題
- 1. 通過TCP套接字的Android發送/接收字節[]通過TCP套接字
- 2. 分別通過TCP套接字發送和接收字符串
- 3. 通過套接字發送字符和字節(TCP)
- 4. 在java中通過套接字發送字符串的問題
- 5. Ç - 發送修改後的字符串通過套接字
- 6. 通過套接字發送字符串時的延遲
- 7. 通過套接字發送wav文件
- 8. 通過套接字發送NULL數據
- 9. 通過UDP套接字發送數據
- 10. Android通過套接字發送數據
- 11. 通過套接字發送文件
- 12. 通過套接字發送inkcanvas筆畫
- 13. Java通過套接字發送文件
- 14. 通過套接字發送HBITMAP
- 15. 通過套接字發送文件
- 16. 通過TCP套接字發送文件
- 17. indexoutofboundsexception通過套接字發送圖片
- 18. 未通過套接字發送XStream
- 19. 通過UDP發送HEX值套接字
- 20. 通過套接字發送圖像
- 21. 通過套接字發送int,c,C++
- 22. 通過套接字發送文件
- 23. 通過套接字發送視頻幀
- 24. 通過套接字發送zip文件
- 25. 通過套接字發送RSA公鑰
- 26. 通過套接字發送整數python
- 27. Java - 通過套接字發送證書
- 28. 通過Java套接字發送文件
- 29. c通過套接字發送圖像
- 30. 通過套接字發送對象
*哪個*「網絡格式」?如果它是*網絡字節順序*,則比通過@G_G查看答案。 –
我們在這裏談論兩件不同的事情。我認爲*網絡字節順序*是指八位字節順序(特別是8位字節)的一種形式,而C中的一個字節的CHAR_BIT位可能大於或等於8. – Sebivor