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

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

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

服務(wù)器之家 - 腳本之家 - Python - 在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程

在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程

2020-06-17 10:22廖雪峰 Python

這篇文章主要介紹了在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程,UDP編程是Python網(wǎng)絡(luò)編程部分的基礎(chǔ)知識(shí),示例代碼基于Python2.x版本,需要的朋友可以參考下

TCP是建立可靠連接,并且通信雙方都可以以流的形式發(fā)送數(shù)據(jù)。相對(duì)TCP,UDP則是面向無連接的協(xié)議。

使用UDP協(xié)議時(shí),不需要建立連接,只需要知道對(duì)方的IP地址和端口號(hào),就可以直接發(fā)數(shù)據(jù)包。但是,能不能到達(dá)就不知道了。

雖然用UDP傳輸數(shù)據(jù)不可靠,但它的優(yōu)點(diǎn)是和TCP比,速度快,對(duì)于不要求可靠到達(dá)的數(shù)據(jù),就可以使用UDP協(xié)議。

我們來看看如何通過UDP協(xié)議傳輸數(shù)據(jù)。和TCP類似,使用UDP的通信雙方也分為客戶端和服務(wù)器。服務(wù)器首先需要綁定端口:

?
1
2
3
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 綁定端口:
s.bind(('127.0.0.1', 9999))

創(chuàng)建Socket時(shí),SOCK_DGRAM指定了這個(gè)Socket的類型是UDP。綁定端口和TCP一樣,但是不需要調(diào)用listen()方法,而是直接接收來自任何客戶端的數(shù)據(jù):

?
1
2
3
4
5
6
print 'Bind UDP on 9999...'
while True:
  # 接收數(shù)據(jù):
  data, addr = s.recvfrom(1024)
  print 'Received from %s:%s.' % addr
  s.sendto('Hello, %s!' % data, addr)

recvfrom()方法返回?cái)?shù)據(jù)和客戶端的地址與端口,這樣,服務(wù)器收到數(shù)據(jù)后,直接調(diào)用sendto()就可以把數(shù)據(jù)用UDP發(fā)給客戶端。

注意這里省掉了多線程,因?yàn)檫@個(gè)例子很簡(jiǎn)單。

客戶端使用UDP時(shí),首先仍然創(chuàng)建基于UDP的Socket,然后,不需要調(diào)用connect(),直接通過sendto()給服務(wù)器發(fā)數(shù)據(jù):

?
1
2
3
4
5
6
7
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
for data in ['Michael', 'Tracy', 'Sarah']:
  # 發(fā)送數(shù)據(jù):
  s.sendto(data, ('127.0.0.1', 9999))
  # 接收數(shù)據(jù):
  print s.recv(1024)
s.close()

從服務(wù)器接收數(shù)據(jù)仍然調(diào)用recv()方法。

仍然用兩個(gè)命令行分別啟動(dòng)服務(wù)器和客戶端測(cè)試,結(jié)果如下:

在Python下進(jìn)行UDP網(wǎng)絡(luò)編程的教程

小結(jié)

UDP的使用與TCP類似,但是不需要建立連接。此外,服務(wù)器綁定UDP端口和TCP端口互不沖突,也就是說,UDP的9999端口與TCP的9999端口可以各自綁定。

源碼參考:https://github.com/michaelliao/learn-python/tree/master/socket

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品第二页 | 欧美日韩国产精品综合 | 北海市副市长黄江老公 | 色伦网 | 草莓视频榴莲视频 | 免费观看小视频 | bt天堂在线最新版在线 | 3d动漫美女被吸乳羞羞有 | 欧美18-19 | 国产卡一卡二卡四卡无卡 | 好爽好深好猛好舒服视频上 | 黑人双渗透 | sss亚洲国产欧美一区二区 | 热99这里只有精品 | 嫩草在线视频www免费观看 | 男人猛进猛出女人下面视频 | 日本噜噜影院 | 成人免费播放器 | 青青青久热国产精品视频 | 91极品女神久色在线播放 | 毛片网站免费观看 | 北条麻妃一区 | 肉宠文很肉到处做1v1 | 亚洲国产视频一区 | 久9视频这里只有精品123 | 动漫美女被吸乳羞羞小说 | 摄像头东北对白清晰 | 99精品国产成人a∨免费看 | 91香蕉视频导航 | 日本艳鉧动漫1~6完整版在 | 亚洲卡一卡2卡三卡4卡无卡三 | 国产美女极品免费视频 | 国产a不卡片精品免费观看 国产aaa伦理片 | 精品免费视在线视频观看 | 高清女主播一区二区三区 | 亚洲AV中文字幕无码久久 | 美女福利视频网站 | 亚洲精品成人456在线播放 | 天天爽天天干天天操 | 狠狠色伊人亚洲综合网站色 | 美女狂揉尿口揉到失禁 |