當前位置:
首頁 > 最新 > SOCKET編程進階

SOCKET編程進階

技術文章第一時間送達!


socketserver

雖說用Python編寫簡單的網路程序很方便,但複雜一點的網路程序還是用現成的框架比較好。這樣就可以專心事務邏輯,而不是套接字的各種細節。SocketServer模塊簡化了編寫網路服務程序的任務。同時SocketServer模塊也是Python標準庫中很多伺服器框架的基礎。

socketserver模塊可以簡化網路伺服器的編寫,Python把網路服務抽象成兩個主要的類,一個是Server類,用於處理連接相關的網路操作,另外一個則是RequestHandler類,用於處理數據相關的操作。並且提供兩個MixIn 類,用於擴展 Server,實現多進程或多線程。

Server類

它包含了種五種server類,BaseServer(不直接對外服務)。TCPServer使用TCP協議,UDPServer使用UDP協議,還有兩個不常使用的,即UnixStreamServer和UnixDatagramServer,這兩個類僅僅在unix環境下有用(AF_unix)。

創建一個socketserver 至少分以下幾步

1.首先,您必須創建一個請求處理類,繼承BaseRequestHandlerclass類並且重 寫父類的handle()方法,該方法將處理傳入的請求。

2.其次,你必須實例化一個上面類型中的一個類(如TCPServer)傳遞伺服器的地址和你上面創建的請求處理類 給這個TCPServer。

3.然後,調用handle_request()或者serve_forever()方法來處理一個或多個請求。

4.最後,調用server_close()關閉socket。

聊天並發實例

解決大數據傳送和粘包問題

粘包:相鄰兩次發送的數據粘在了一起

文件上傳

注意:

1 紙條就是conn

2 一收一發(解決粘包的關鍵)

3 client_data=conn.recv(1024)

if 那邊send一個空數據 這邊recv為空,則recv繼續阻塞,等待其他的數據。所以聊天的時候好好聊,別發空數據。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 python寶典 的精彩文章:

TAG:python寶典 |