傳輸層: 端口號算法
Tcp協議:面向鏈接,數據可靠,傳輸效率低,面向字節流shell
Udp協議:面向無鏈接,數據不可靠,傳輸效率高,面向報文網絡
Tcp和udp協議下的socketsocket
Tcp長鏈接的一些問題優化
緩衝區: 將程序和網絡解耦spa
輸入緩衝區效率
輸出緩衝區打包
Import Subprocessudp
sub_obj = subprocess.Popen(程序
‘dir’,
shell=True,
stdout=subprocess.PIPE, #正確結果的存放位置
stderr=subprocess.PIPE #錯誤結果的存放位置
)
兩種黏包現象:
1 連續的小包可能會被優化算法給組合到一塊兒進行發送
2 第一次若是發送的數據大小2000B接收端一次性接受大小爲1024,這就致使剩下的內容會被下一次recv接收到,致使結果錯亂
方案一:因爲雙方不知道對方發送數據的長度,致使接收的時候,可能接收不全,或者多接收另一次發送的信息內容,因此在發送真實數據以前,要先發送數據的長度,接收端根據長度來接收後面的真實數據,可是雙方有一個交互確認的過程
方案二:
Struct模塊,
打包:struct.pack(‘i’,長度)
解包:struct.unpack(‘i’,字節)
打印進度條