国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

python SOCKET編程基礎(chǔ)入門

瀏覽:6日期:2022-06-27 08:16:10
一、UDP編程

1.客戶端Client:發(fā)起訪問的一方。

2.服務(wù)器端

3.server段編程

(1)建立socket,socket是負(fù)責(zé)具體通信的一個(gè)實(shí)例

(2)綁定,為創(chuàng)建的socket指派固定的端口和IP地址

(3)接受對方發(fā)送內(nèi)容

(4)給對方發(fā)送反饋,此步驟為非必須步驟

4.Client端編程

(1)建立通信的socket

(2)發(fā)送內(nèi)容到指定服務(wù)器

(3)接受服務(wù)器給定的反饋內(nèi)容

5.模擬一下這個(gè)過程

(1)我們先建立一個(gè)服務(wù)器的函數(shù)

#服務(wù)器案例import socket​#模擬服務(wù)器的函數(shù)def serverFunc(): #1.建立socket #socket.AF_INET:使用IPV4協(xié)議族 #socket.SOCK_DGRAM:使用UDP通信 sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #2.綁定ip和port​ #127.0.01:這個(gè)ip地址代表的是機(jī)器本身 #7852:隨機(jī)指定的端口號(hào) #地址是一個(gè)tuple類型,(ip.port) addr = ('127.0.0.1',7852) sock.bind(addr)​ #接受對方消息 #等待方式為死等,沒有其他可能性 #recvfrom接受的返回值是一個(gè)元組,前一項(xiàng)表示數(shù)據(jù),后一項(xiàng)表示地址 #參數(shù)的含義是緩沖區(qū)大小 #rst = sock.recvfrom(500) data,addr = sock.recvfrom(500)​ print(data) print(type(data))​ #發(fā)送過來的數(shù)據(jù)是bytes格式,必須通過解碼才能得到str格式內(nèi)容 #decode默認(rèn)參數(shù)是utf8 text = data.decode() print(type(text)) print(text)​ #給對方反饋的消息 rsp = 'I am very hungry now'​ #發(fā)送的數(shù)據(jù)需要編程成bytes格式 #默認(rèn)時(shí)utf8 data = rsp.encode() sock.sendto(data,addr) if __name__ == '__main__': print('Start Server') serverFunc()print('End Server')

(2)然后創(chuàng)建一個(gè)客戶端的函數(shù)

import socketdef clientFunc(): sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) text = 'you are very cool'​ #發(fā)送的數(shù)據(jù)必須是bytes格式 data = text.encode() #發(fā)送 sock.sendto(data,('127.0.0.1',7852)) data,addr =sock.recvfrom(200)​ data = data.decode() print(text)​if __name__ == '__main__': print('Start Client') clientFunc()print('End Client')

(3)我們先啟動(dòng)服務(wù)器端函數(shù)

出現(xiàn)如下圖像,它是創(chuàng)建了一個(gè)sock,然后自己綁定到127.0.0.1:7852,運(yùn)行到sock.recvfrom(500)這里死等客戶端發(fā)消息

python SOCKET編程基礎(chǔ)入門

(4)再啟動(dòng)客戶端函數(shù)

出現(xiàn)如下發(fā)送編碼后的​text內(nèi)容到服務(wù)器(127.0.0.1:7852),服務(wù)器成功接收后返回you are cool這句話。

python SOCKET編程基礎(chǔ)入門

(5)我們再看服務(wù)器的函數(shù)那里

接受了bytes格式的字符串,并打印出來了,然后再解碼打印出來,最后把you are cool返回​客戶端。

python SOCKET編程基礎(chǔ)入門

(6)這里有個(gè)地方?jīng)]有辦法:因?yàn)槲覀冊谝慌_(tái)電腦上做的測試,所以相當(dāng)于自言自語,​不如在兩臺(tái)電腦上進(jìn)行試驗(yàn)。​

二、源碼

D33_1_ServerProgramme.py

D33_2_ClientProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_1_ServerProgramme.py

https://github.com/ruigege66/Python_learning/blob/master/D33_2_ClientProgramme.py

以上就是python SOCKET編程基礎(chǔ)入門的詳細(xì)內(nèi)容,更多關(guān)于python SOCKET編程的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 汉源县| 云阳县| 富民县| 富源县| 望江县| 都兰县| 遂宁市| 那曲县| 开远市| 远安县| 德昌县| 横山县| 尼玛县| 嘉峪关市| 包头市| 交口县| 当雄县| 津南区| 泾阳县| 涪陵区| 东乡| 射阳县| 阿巴嘎旗| 铁岭市| 尖扎县| 巨野县| 中西区| 阿克陶县| 榆社县| 保德县| 平泉县| 浏阳市| 定南县| 澄江县| 大姚县| 监利县| 桑植县| 专栏| 晋州市| 通河县| 教育|