我正在學習套接字編程(在Python中),我想知道封裝數據的最佳/典型方法是什麼?我的數據包將用於在接收端發出運行,停止,配置等命令。使用JSON還是直接文本有幫助?設計一個簡單的網絡包
3
A
回答
1
我建議你使用固定格式或大多數固定格式,因爲這樣做會讓事情變得更簡單。
屆時使用的功能,如標準庫的struct.Struct,其包()和umpack()方法,也可能是更多特色略微pacakges如Construct,你應該有很多爲你做解析工作;-)
0
如果您正在開發某種學習練習,您可能會發現最好使用結構化文本(即人類可讀和人爲可寫)格式。
一個例子是每個命令使用固定數量的字段,固定寬度的文本字段和/或易於分析的字段分隔符。
一般來說文本在數據包大小方面效率較低,但它具有如下優點:如果執行數據包捕獲(例如,使用wireshark)或者如果要使用telnet模仿客戶端。
如果這只是一個學習練習,那麼調試的便利性是一個重要問題。
0
看看scapy(一個很棒的Python數據包操作庫)如何實現它。看起來像有一個handful of fields。
1
我建議以純文本開始 - 它更容易調試。你的文本所採用的格式取決於你在做什麼,有多少命令,參數等等。你是否充實了你的命令的外觀?一旦你弄清楚它看起來會是什麼樣子,它可能會建議一種格式。
您使用的是TCP還是UDP? TCP很容易,因爲它是一個流,但是如果你使用UDP,請記住UDP數據包的最大大小,因此消息可以有多大。
相關問題
- 1. 神經網絡,一個簡單的計數器
- 2. 設置簡單WebRequest的網絡憑證
- 3. 簡單的網絡應用程序設計
- 4. 設計一個網絡平臺認證
- 5. 網絡簡單網絡連接的簡單Qt代碼
- 6. 一個簡單的社交網站的數據庫設計
- 7. 簡單的網頁設計的好工具/軟件包
- 8. TensorFlow上的簡單網絡
- 9. 簡單的網絡爬蟲
- 10. 一式的神經網絡設計
- 11. 神經網絡(簡單)
- 12. 簡單的RNN網絡 - ValueError:設置一個序列的數組元素
- 13. 尋找一個簡單的Python/MongoDB的網絡教程
- 14. 一個簡單的紙牌遊戲的Python網絡庫
- 15. 如何設置一個簡單的網絡服務器(Windowws XP Pro)
- 16. 如何驗證一個簡單的網絡表格
- 17. 軟終止一個簡單的網絡服務器
- 18. 創建一個簡單的網絡聊天
- 19. 集成Pusher到一個簡單的PHP網絡應用程序
- 20. 爲會議創建一個簡單的網絡服務
- 21. 一個簡單的網絡服務器切換二郎
- 22. 設計貝葉斯網絡
- 23. 網絡UDP廣播設計?
- 24. 網絡設計[使用Netty]
- 25. 材質設計,對網絡
- 26. 神經網絡設計
- 27. 設計神經網絡
- 28. 簡單的網絡服務器或網絡的測試框架
- 29. Android的 - 簡單的設計
- 30. 簡單的網絡監測出站數據包丟失