日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

對(duì)python中UDP,socket的使用詳解

系統(tǒng) 2098 0

講到UDP和TCP之前咱們先了解一下socket

Socket

socket簡(jiǎn)稱套接字,是進(jìn)程間通信的一種方式。與其他的方式的進(jìn)程間的通訊的方式不同的是,socket是實(shí)現(xiàn)了主機(jī)間進(jìn)程間的通訊。我們網(wǎng)絡(luò)上的各種服務(wù)都是基于socket來(lái)完成的。例如QQ.微信。

怎么樣創(chuàng)建socket呢。

創(chuàng)建一個(gè)tcpsocket:

            
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
          

創(chuàng)建一個(gè)UDP類型的socket;

            
# # 創(chuàng)建套接字
# udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
          

UDP介紹

udp―?C數(shù)據(jù)報(bào)文協(xié)議,是一個(gè)無(wú)連接的簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議,UDP不提供可靠性,他只是將應(yīng)用程序傳送給IP層的數(shù)據(jù)報(bào)文發(fā)送出去,并不保證能否達(dá)到目的地。由于UDP在傳輸?shù)倪^(guò)程中不需要和服務(wù)器建立鏈接。且沒(méi)有超時(shí)重發(fā)的的機(jī)制。故而傳輸很快。

下面簡(jiǎn)單通過(guò)示意圖來(lái)研究一下UDP。

對(duì)python中UDP,socket的使用詳解_第1張圖片

UDP 發(fā)送數(shù)據(jù)

            
import socket
# 設(shè)置socket
udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 設(shè)置目的端口和IP
sendArr = ('192.168.31.174',65535)
sendData = input('請(qǐng)輸入你要發(fā)送的信息')
# 發(fā)送數(shù)據(jù),此處有一個(gè)坑是sendto()里面的參數(shù)必須二進(jìn)制數(shù)據(jù),不能直接傳字符串
udpSocket.sendto(sendData.encode('utf-8'),sendArr)

udpSocket.close()

          

UDP 接收數(shù)據(jù)

            
import socket
# 創(chuàng)建UDP套接字

udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 綁定端口號(hào)
udpSocket.bind(("", 7789))
recvData = udpSocket.recvfrom(1024)
content, destInfo = recvData

print("content is %s"%content)
print("content is %s"%content.decode("utf-8"))

print(recvData)
udpSocket.close()

          

從打印結(jié)果我們可以看出recvData中包含是一個(gè)元祖,元祖接收到數(shù)據(jù)方ip.和端口號(hào)的。

發(fā)送通過(guò)端口號(hào)和IP將數(shù)據(jù)發(fā)送給接收方,接收方監(jiān)聽(tīng)端口,這樣就完成一次UDP通信的過(guò)程,這個(gè)過(guò)程涉及到,發(fā)送方組包,接收解包的過(guò)程。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 晴隆县| 宜宾市| 闽侯县| 瓦房店市| 文山县| 棋牌| 昌平区| 德令哈市| 从化市| 勃利县| 南乐县| 赤城县| 尉氏县| 安义县| 墨脱县| 闸北区| 冷水江市| 翼城县| 罗田县| 丰宁| 金华市| 广东省| 聂拉木县| 子长县| 嘉定区| 龙江县| 北安市| 光泽县| 丰城市| 曲周县| 同江市| 克什克腾旗| 北川| 镇原县| 牡丹江市| 西乌珠穆沁旗| 延寿县| 金坛市| 丽江市| 湖南省| 高雄市|