日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python网络编程内容_Python网络编程

發布時間:2024/7/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python网络编程内容_Python网络编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文要寫的內容也稱為Python套接字編程,并簡單介紹socketserver類。參考教程主要是《Python核心編程》。

首先,客戶端/服務器模型,客戶端向服務器發送請求,在請求合理的情況下,服務器返回客戶端需要的資源,這是此架構下的通信方式。

套接字:套接字是計算機網絡的數據結構,體現了通信端點的概念。在開始任何類型的通信之前,網絡應用必須創建套接字。可以將套接字比作電話插口,沒有它將無法進行通信。AF_INET 網絡套接字 是目前使用最廣泛的套接字。

套接字地址:一個網絡地址由主機-端口 對來組成;可以將套接字比作電話插口,那么主機名和 端口號就像是區號與電話號碼的組合。

PS:有效端口號范圍為0~65535,小于1024的端口號預留給了系統。

套接字分為面向連接的套接字和無連接的套接字

面向連接的通信提供序列化的,可靠的和不重復的數據交付,而沒有邊界記錄,這基本上意味著每條消息可以拆分成很多片段,并且每一條消息片段都確保能夠達到目的地,然后將它們按順序組合在一起,最后加將完整消息傳遞給正在等待的應用程序。

實現這種連接類型的主要協議是傳輸控制協議 TCP。創建TCP套接字,必須使用SOCK_STREAM作為套接字類型。

實例:

創建TCP服務器偽代碼如下:

sock = socket() #創建套接字

sock.bind() #將套接字與地址綁定

sock.listen() #監聽連接

loop: #服務器無限循環

csock = sock.accept() #接受客戶端連接

loop: #通信循環

cs.recv()/cs.send() #接收發送數據

cs.close() #關閉客戶端套接字

ss.close() #關閉服務器套接字

服務器示例代碼如下:

客戶端代碼示例如下:

無連接套接字是數據報類型的套接字,這意味著,在通信開始之前不需要建立連接。所以,在數據傳輸過程中并無法保證它的順序性,可靠性或重復性,而且還可能丟失信息。但它的優勢也是明顯的,比如開銷小,“成本低廉”。實現這種無連接類型的主要協議是用戶數據報協議UDP。必須使用SOCK_DGRAM作為套接字類型

創建UDP服務器的偽代碼如下:

sock.socket() #創建通信套接字

sock.bind() #將套接字與地址綁定

loop: #服務器無限循環

csock = sock.recvfrom()/sock.sendto() #接收發送數據

sock.close() #關閉服務器套接字

示例代碼如下:

socketserver模塊簡單介紹

這個模塊的不同之處在于,我們使用類來編寫應用程序。因為以面向對象的方式處理事物有助于組織數據,以及邏輯性地將功能放在正確的地方。應用程序是事件驅動的,這意味著只有在系統中的事件發生時,它們才會工作。

socketserver模塊有4個具體的類

class socketserver.TCPServer(server_address, RequestHandlerClass, bind_and_activate=True):使用TCP協議

class socketserver.UDPServer(server_address, RequestHandlerClass, bind_and_activate=True):使用UDP協議

class socketserver.UnixStreamServer(server_address, RequestHandlerClass, bind_and_activate=True):只使用在UNIX平臺上

class socketserver.UnixDatagramServer(server_address, RequestHandlerClass, bind_and_activate=True):只使用在UNIX平臺上

這4個類的繼承關系如下:

這四個類是同步處理請求的,每一個請求必須在前一個請求完成后再開始。所以如果每個請求都花費大量的時間的話,因為需要進行大量計算,那么它們是不合適的。解決方案就是創建一個分開的進程或者線程去處理每個請求,ForkingMixIn和ThreadingMixIn混入類可以用作支持異步行為。

創建一個服務器需要以下幾步,首先,必須創建一個請求處理request handler類通過繼承BaseRequestHandler類并且重寫handler()方法。該方法將會處理進來的請求,第二步,必須繼承server類中的一個,并且將它和request handler類一起傳遞到服務器地址。然后調用服務器的handle_request()或者serve_forever()方法去處理一個或多個請求。最后調用server_close()關掉套接字

socketserver.BaseServer類是此模塊中服務器對象的超類,本身并不直接生成實例,而是通過派生關系,讓子類生產實例,它的子類,比如TCPServer,UDPServer。

請求處理對象

socketserver.BaseQequestHandler是超類,每個子類都必須定義一個新的handle()方法,它的兩個子類,StreamQequestHandler和DatagramQequestHandler.

示例代碼也就是python docs上的代碼:

需要注意的是,此片文章中,tcp的代碼調試通過了,udp和socketserver的代碼調試未通過,后續再努力

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python网络编程内容_Python网络编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久亚洲av无码网站 | 男男大尺度 | 一级女性全黄久久生活片免费 | 一级黄色a级片 | 波多野结衣91| 欧美xxx视频| 天天插美女 | 性涩av | 嫩草懂你 | 久久第一页 | 国产精品二区一区二区aⅴ污介绍 | 日本一卡二卡在线 | 91极品视频| 污网在线观看 | 永久免费54看片 | 免费看一级 | 国产女主播视频 | 久久久久久久一区二区三区 | 美女久久精品 | 国产香蕉精品视频 | 国产在线精品二区 | 精品国产乱码久久久久夜深人妻 | 国产乱子轮xxx农村 岛国久久久 | 午夜亚洲精品 | 欧美午夜精品久久久久久孕妇 | 黄色网页在线看 | 一区二区三区视频在线免费观看 | 夜夜操天天| 日韩网站在线观看 | 激情高潮呻吟抽搐喷水 | 手机看片福利永久 | 亚洲欧美精品午睡沙发 | 亚洲国产精品一区二区尤物区 | 成人h动漫精品一区二区 | av一级久久 | 免费黄色网址在线观看 | av五月| 国产十八熟妇av成人一区 | 欧美成人免费在线观看 | 天天干一干 | 无码人妻丰满熟妇啪啪网站 | 午夜香蕉网| 色av资源 | 在线免费毛片 | 性囗交免费视频观看 | 日本欧美国产在线 | a毛片在线观看 | 欧美三日本三级少妇三99 | 国产天堂av| 大又大粗又爽又黄少妇毛片 | 一级毛片基地 | 中文字幕人妻一区二区 | 婷婷啪啪| 精品国产午夜福利在线观看 | 啊v视频在线 | 中国黄色录像一级片 | av国产片 | 丰满熟女一区二区三区 | 亚洲精久 | 最新国产中文字幕 | 夜夜操天天射 | 日韩黄色短片 | 成人网在线视频 | 蜜臀av在线免费观看 | 日吊视频 | 天堂成人国产精品一区 | 被黑人猛躁10次高潮视频 | www.人人干| 成人欧美一区二区三区黑人 | 久久久久久久网站 | 欧美国产一二三区 | a级免费毛片| 欧美性极品 | 久久中文字幕一区二区 | 日韩免费一区二区三区 | 黑人巨大xxxxx性猛交 | 性精品 | 欧美一区二区 | 日韩视频在线一区 | 国产精品久久久久久久av | 色图视频 | 免费色片网站 | 日本大片黄 | 特黄特色免费视频 | 日韩极品一区 | 欧美黑人精品一区二区不卡 | 日日骚av| 国产免费99| 免费在线成人 | 岛国av免费观看 | 欧美人与动牲交a欧美精品 欧美三级在线看 | 最新高清无码专区 | 91精品国产高清一区二区三蜜臀 | 丰满肉肉bbwwbbww | 黑人干亚洲人 | 精品九九九 | 综合 欧美 亚洲日本 | 国产不卡高清 | 在线色播|