千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > Python 網(wǎng)絡(luò)編程

Python 網(wǎng)絡(luò)編程

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-06 15:50:41 1699257041

python提供了兩個級別訪問的網(wǎng)絡(luò)服務:

低級別的網(wǎng)絡(luò)服務支持基本的Socket,它提供了標準的BSDSocketsAPI,可以訪問底層操作系統(tǒng)Socket接口的全部方法。

高級別的網(wǎng)絡(luò)服務模塊SocketServer,它提供了服務器中心類,可以簡化網(wǎng)絡(luò)服務器的開發(fā)。

什么是Socket?

Socket又稱"套接字",應用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應答網(wǎng)絡(luò)請求,使主機間或者一臺計算機上的進程間可以通訊。

socket()函數(shù)

Python中,我們用socket()函數(shù)來創(chuàng)建套接字,語法格式如下:

socket.socket([family[,type[,proto]]])

參數(shù)

family:套接字家族可以使AF_UNIX或者AF_INET。

type:套接字類型可以根據(jù)是面向連接的還是非連接分為SOCK_STREAM或SOCK_DGRAM。

protocol:一般不填默認為0。

簡單實例

服務端

我們使用socket模塊的socket函數(shù)來創(chuàng)建一個socket對象。socket對象可以通過調(diào)用其他函數(shù)來設(shè)置一個socket服務。

現(xiàn)在我們可以通過調(diào)用bind(hostname,port)函數(shù)來指定服務的port(端口)。

接著,我們調(diào)用socket對象的accept方法。該方法等待客戶端的連接,并返回connection對象,表示已連接到客戶端。

完整代碼如下:

實例

#!/usr/bin/python#

-*-coding:UTF-8-*-#

文件名:server.pyimportsocket#導入socket模塊

s=socket.socket()#創(chuàng)建socket對象

host=socket.gethostname()#獲取本地主機名

port=12345#設(shè)置端口

s.bind((host,port))#綁定端口

s.listen(5)#等待客戶端連接

whileTrue:c,addr=s.accept()#建立客戶端連接

print'連接地址:',addr

c.send('歡迎訪問千鋒!')

c.close()#關(guān)閉連接

客戶端

接下來我們寫一個簡單的客戶端實例連接到以上創(chuàng)建的服務。端口號為12345。

socket.connect(hosname,port)方法打開一個TCP連接到主機為hostname端口為port的服務商。連接后我們就可以從服務端獲取數(shù)據(jù),記住,操作完成后需要關(guān)閉連接。

完整代碼如下:

實例

#!/usr/bin/python

#-*-coding:UTF-8-*-

#文件名:client.py

importsocket#導入socket模塊

s=socket.socket()#創(chuàng)建socket對象

host=socket.gethostname()#獲取本地主機名

port=12345#設(shè)置端口號

s.connect((host,port))

prints.recv(1024)

s.close()

現(xiàn)在我們打開兩個終端,第一個終端執(zhí)行server.py文件:

$pythonserver.py

第二個終端執(zhí)行client.py文件:

$pythonclient.py

歡迎訪問千鋒!

以上內(nèi)容為大家介紹了Python網(wǎng)絡(luò)編程,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓機構(gòu):千鋒教育。http://madgrindclothing.com/

tags: python培訓
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取

下一篇

Python的模塊
相關(guān)推薦HOT