python網路程式設計

2021-10-10 22:42:44 字數 1981 閱讀 3036

要進行網路通訊,需要建立起通訊雙方的連線,連線的雙方分別稱為客戶端和服務端,在python中,使用套接字socket來建立起網路連線。

套接字包含在socket模組中:

import socket

socket.socket()

對於客戶端和服務端,都是使用socket來建立連線的,但是在使用行為上,客戶端和服務端會有一些不一樣。

服務端建立需要四個步驟:新建socket、繫結ip和埠(bind)、監聽連線(listen)、接受連線(accept)。

客戶端建立則簡單一些,僅需兩個步驟:新建socket、連線服務端(connect)。

當網路連線上以後,客戶端和服務端就可以進行資料通訊了,套接字通過send()函式傳送資料,通過recv()函式接收資料。

服務端:

客戶端

接著在乙個終端先執行服務端:

python server.py

然後再在另外乙個終端執行客戶端:

python client.py

注意:如果在乙個終端同時啟動的話,服務端會報錯

在服務端的終端,將會輸出以下資訊:

connect addr:(『127.0.0.1』, 50382)

b』hello world. hello socket』

使用了python自帶的功能啟動了乙個http伺服器,並通過瀏覽器瀏覽到了這個http伺服器提供的頁面。在瀏覽的過程中,實際上是瀏覽器向http伺服器傳送了乙個http請求。

除了使用瀏覽器傳送http請求,通過**也可以向http伺服器傳送請求,python提供了相關的庫urllib,通過urllib包裡面的request,可以向其他http伺服器發起請求。

from urllib import request

response = request.urlopen(『 # 嚮慕課網官網發出請求

print(response) # ==>

請求成功的話,會得到乙個httpresponse,它是來自http伺服器的乙個回應,可以把這個回應的一些資訊列印出來。

狀態碼:

print(response.status) # ==> 200

狀態碼是乙個三位整數,在http協議的標準裡面,定義了很多狀態碼,其中200表示請求是正常的

python官方提供的urllib庫可以滿足一般情況下的http操作,但是urllib這個庫設計是用來處理url位址的,並不是專門處理http操作的包。因此,在很多場景下,一般會使用requests庫來進行http請求。

requests庫是著名的python第三方庫,使用requests庫,可以定製化你的http請求,包括請求方法,請求引數等等。

由於requests是第三方庫,因此在使用前,需要安裝。

pip install requests(如果安裝過程網速不怎麼好,可以使用國內映象進行安裝)

安裝完成後,使用requests庫來請求慕課網官網。

response = requests.get(『

列印狀態碼

print(response.status_code)

列印回應頭

print(response.headers)

在一般的使用上,requests和urllib沒有太大區別,但是在複雜的場景中,requests可以提供urllib無法提供的強大功能。因此,在使用上,建議使用requests庫代替urllib庫來進行http請求等的操作。

通過urllib或者requests請求後,會得到乙個httpresponse,httpresponse擁有狀態碼、回應頭等的資訊。

但我們知道,對於乙個頁面,通常是由文字、等資訊組成的,這些屬於乙個httpresponse的內容。

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...

python 網路程式設計

今天晚上學習了一下python的網路程式設計,實現了client向server傳送資料,server反饋資訊 python 3.3 版本 server from socket import class tcpserver object def init self,serverport self.se...

python網路程式設計

網路通訊是計算機之間的程序之間的通訊。tcp程式設計 tcp連線建立是雙向通道,客戶端與服務端都可以給對方傳送資料。建立tcp連線時,主動發起連線的叫客戶端,被動響應連線的叫服務端。建立乙個tcp的socket連線 用socket family,type 建立套接字獲得socket物件。family...