1. 程式人生 > >python socket 的理解(1)

python socket 的理解(1)

網絡 完成 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)