一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python SOCKET編程基礎(chǔ)入門

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

2021-09-10 00:31心悅君兮君不知-睿 Python

這篇文章主要介紹了python SOCKET編程基礎(chǔ)入門的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

一、udp編程

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

2.服務(wù)器端

3.server段編程

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

(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.模擬一下這個過程

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#服務(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:這個ip地址代表的是機器本身
 
  #7852:隨機指定的端口號
 
  #地址是一個tuple類型,(ip.port)
 
  addr = ("127.0.0.1",7852)
 
  sock.bind(addr)
 
?
 
  #接受對方消息
 
  #等待方式為死等,沒有其他可能性
 
  #recvfrom接受的返回值是一個元組,前一項表示數(shù)據(jù),后一項表示地址
 
  #參數(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)時utf8
 
  data = rsp.encode()
 
  sock.sendto(data,addr)
 
  
 
if __name__ == "__main__":
 
  print("start server")
 
  serverfunc()
 
print("end server")

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import socket
 
def 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)我們先啟動服務(wù)器端函數(shù)

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

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

(4)再啟動客戶端函數(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)這里有個地方?jīng)]有辦法:因為我們在一臺電腦上做的測試,所以相當(dāng)于自言自語,?不如在兩臺電腦上進行試驗。?

二、源碼

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ù)器之家其它相關(guān)文章!

原文鏈接:https://www.cnblogs.com/ruigege0000/p/11894654.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人欧美一区二区三区 | 女同性互吃奶乳免费视频 | 99久久精品免费看国产 | 日本人欧美xx | 夫妻性生活影院 | www青青草原 | 4虎影视国产在线观看精品 4s4s4s4s色大众影视 | 无限在线看免费视频大全 | 欧美视频在线一区 | 亚洲男人天堂2023 | 国产精品日韩欧美在线 | 欧美最猛性xxxxx男男 | japanese秘书丝袜 | 二次元美女互摸隐私互扒 | 免费370理论片中文字幕 | 小草视频免费观看在线 | 星球大战成人h无删减版 | 色婷婷网 | 国产 日韩 欧美视频二区 | 九九久久国产精品大片 | 亚洲福利视频一区 | 日本无遮挡拍拍拍凤凰 | 天堂成人影院 | 国产一卡2卡3卡四卡国色天香 | 欧美午夜性春猛交bbb | 欧美一区二区三区久久久 | 69日本xxxhd | 成人在线一区二区三区 | 国产亚洲女在线线精品 | 小小水蜜桃视频高清在线观看免费 | 亚洲男人的天堂网站 | 9久re热视频这里只有精品 | 天天爱天天做天天爽天天躁 | caonila国产在线观看 | 波多野结衣在线中文字幕 | 亚欧洲乱码视频一二三区 | 免费在线视频观看 | jk制服喷水| 手机看片日韩1024你懂的首页 | 国产欧美日韩成人 | 狠狠色 |