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

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

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

服務器之家 - 腳本之家 - Python - python SOCKET編程基礎入門

python SOCKET編程基礎入門

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

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

一、udp編程

1.客戶端client:發起訪問的一方。

2.服務器端

3.server段編程

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

(2)綁定,為創建的socket指派固定的端口和ip地址

(3)接受對方發送內容

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

4.client端編程

(1)建立通信的socket

(2)發送內容到指定服務器

(3)接受服務器給定的反饋內容

5.模擬一下這個過程

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

?
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
#服務器案例
 
import socket
 
?
 
#模擬服務器的函數
 
def serverfunc():
 
  #1.建立socket
 
  #socket.af_inet:使用ipv4協議族
 
  #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接受的返回值是一個元組,前一項表示數據,后一項表示地址
 
  #參數的含義是緩沖區大小
 
  #rst = sock.recvfrom(500)
 
  data,addr = sock.recvfrom(500)
 
?
 
  print(data)
 
  print(type(data))
 
?
 
  #發送過來的數據是bytes格式,必須通過解碼才能得到str格式內容
 
  #decode默認參數是utf8
 
  text = data.decode()
 
  print(type(text))
 
  print(text)
 
?
 
  #給對方反饋的消息
 
  rsp = "i am very hungry now"
 
?
 
  #發送的數據需要編程成bytes格式
 
  #默認時utf8
 
  data = rsp.encode()
 
  sock.sendto(data,addr)
 
  
 
if __name__ == "__main__":
 
  print("start server")
 
  serverfunc()
 
print("end server")

(2)然后創建一個客戶端的函數

?
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"
 
?
 
  #發送的數據必須是bytes格式
 
  data = text.encode()
 
  #發送
 
  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)我們先啟動服務器端函數

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

python SOCKET編程基礎入門

(4)再啟動客戶端函數

出現如下發送編碼后的?text內容到服務器(127.0.0.1:7852),服務器成功接收后返回you are cool這句話。

python SOCKET編程基礎入門

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

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

python SOCKET編程基礎入門

(6)這里有個地方沒有辦法:因為我們在一臺電腦上做的測試,所以相當于自言自語,?不如在兩臺電腦上進行試驗。?

二、源碼

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編程基礎入門的詳細內容,更多關于python socket編程的資料請關注服務器之家其它相關文章!

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人亚洲精品一区二区在线看 | 亚洲精品人成网在线播放影院 | 国产卡一卡二卡3卡乱码免费 | 国产精品99久久免费观看 | 好男人免费高清在线观看2019 | 美女1819xxxx| 摸咪网在线影院在线观看 | 国产精品国产香蕉在线观看网 | 超级乱淫寡妇 | aⅴ天堂小视频 | 五月天婷婷亚洲 | 国产精品suv一区二区 | 黄德维| 99精品网站 | 天天爱综合网 | 国内自拍网红在线自拍综合 | 99久久精品国语对白 | 亚洲精品动漫免费二区 | 国产91青青成人a在线 | 欧美一区二区三区大片 | 免费网站直接进入 | 日本漫画工囗全彩内番e绅 日本伦理动漫在线观看 | 亚洲国产cao | 欧美成人影院免费观 | xxxx俄罗斯大白屁股 | 999久久精品国产 | 国产99精品成人免费视频 | 国产偷窥女洗浴在线观看亚洲 | 亚洲天堂2013| 草免费视频| 精品淑女少妇AV久久免费 | 久久www免费人成高清 | 欧美在线播放成人免费 | 日韩欧美一区二区三区 | 日韩成人影视 | 亚洲图片 自拍偷拍 | 美女和男人差差 | 全彩调教侵犯h本子全彩妖气he | 免费理伦片在线观看全网站 | 9久re热视频这里只有精品 | 四虎影院在线免费观看视频 |