python socket 的理解(1)
阿新 • • 發佈:2018-08-09
網絡 完成 ron bsp 接收數據 技術分享 檢測 cnblogs 無數據
前言
socket的用法簡單,但裏面的概念有點模糊,記錄自己本人的一點理解。
socket層結構圖
註意,從此圖中看出socket處於tcp和應用層之間。那麽它代表啥意思呢?簡明的說,數據的傳輸都是底層協議處理的,跟socket沒啥關系。sokcet被抽象成文件,意味著socket就幹兩件事,讀和寫。
socket 函數
recv函數
1.接收緩沖區接收數據,如果檢測到無數據,或正在接收,就一直等待。
2.當協議接收完畢,recv就copy接收緩沖區的數據到buf,如果recv緩沖區較大,recv要不停的copy幾次。
註意:在這裏,我們把緩沖區想象成一個完成的文件,recv(100),相當於python open對象方法的read(100),如果文件大小1000,每次讀100,下次就會從上一次100處開始繼續讀。
3.當網絡中斷,recv返回一個長度為0的字符
總結
參考文獻
socket send函數和recv函數詳解 https://blog.csdn.net/chenhuajie123/article/details/9149185
簡單理解socket https://www.cnblogs.com/dolphinX/p/3460545.html
python socket 的理解(1)