Python中網絡編程對socket accept函數的理解


在服務器端,socket()返回的套接字用於監聽(listen)和接受(accept),這個套接字不能用於與客戶端之間發送和接收數據。

 

accept()接受一個客戶端的連接請求,並返回一個新的套接字,不同於以上socket()返回的用於監聽和接受客戶端的連接請求的套接字;與此客戶端通信是通過這個新的套接字上發送和接收數據來完成的。

每個連接進來的客戶端,都會通過accept函數返回一個不同的客戶端的socket對象和屬於客戶端的套接字,代碼如圖

 

假設一共有3個客戶端連接到服務器端,那么在服務器端就移動有4個套接字,第1個是socket()返回的,用於監聽的套接字;其余3個是分別調用3次accept()返回的不同的套接字。

如果已經有客戶端連接到服務器端,不再需要監聽和接受更多的客戶端連接的時候,可以關閉由socket()返回的套接字,而不會影響與客戶端之間的通信。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM