欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年08月22日 10:14:16   作者:段振軒  
今天小編就為大家分享一篇對(duì)python中UDP,socket的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

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

Socket

socket簡(jiǎn)稱套接字,是進(jìn)程間通信的一種方式。與其他的方式的進(jìn)程間的通訊的方式不同的是,socket是實(shí)現(xiàn)了主機(jī)間進(jìn)程間的通訊。我們網(wǎng)絡(luò)上的各種服務(wù)都是基于socket來完成的。例如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—–數(shù)據(jù)報(bào)文協(xié)議,是一個(gè)無連接的簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議,UDP不提供可靠性,他只是將應(yīng)用程序傳送給IP層的數(shù)據(jù)報(bào)文發(fā)送出去,并不保證能否達(dá)到目的地。由于UDP在傳輸?shù)倪^程中不需要和服務(wù)器建立鏈接。且沒有超時(shí)重發(fā)的的機(jī)制。故而傳輸很快。

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

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

相關(guān)文章

  • Python進(jìn)度條tqdm的用法詳解

    Python進(jìn)度條tqdm的用法詳解

    這篇文章主要介紹了Python進(jìn)度條tqdm的用法,這對(duì)于第三方庫非常豐富的Python來說,想要實(shí)現(xiàn)這一功能并不是什么難事,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2021-08-08
  • jupyter閃退怎么辦?jupyter閃退問題的解決

    jupyter閃退怎么辦?jupyter閃退問題的解決

    這篇文章主要介紹了jupyter閃退怎么辦?jupyter閃退問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 關(guān)于如何使用python的logging庫

    關(guān)于如何使用python的logging庫

    這篇文章主要介紹了關(guān)于如何使用python的logging庫,logging是Python標(biāo)準(zhǔn)庫中用于記錄日志的模塊。它提供了一種簡(jiǎn)單但靈活的方法來記錄程序中的事件,以便稍后進(jìn)行調(diào)試和分析,需要的朋友可以參考下
    2023-04-04
  • python 浮點(diǎn)數(shù)四舍五入需要注意的地方

    python 浮點(diǎn)數(shù)四舍五入需要注意的地方

    這篇文章主要介紹了python 四舍五入需要注意的地方,幫助大家避免一些不必要的坑,感興趣的朋友可以了解下
    2020-08-08
  • 解讀sqlalchemy的常用數(shù)據(jù)類型有哪些

    解讀sqlalchemy的常用數(shù)據(jù)類型有哪些

    這篇文章主要介紹了解讀sqlalchemy的常用數(shù)據(jù)類型有哪些,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python 如何手動(dòng)編寫一個(gè)自己的LRU緩存裝飾器的方法實(shí)現(xiàn)

    Python 如何手動(dòng)編寫一個(gè)自己的LRU緩存裝飾器的方法實(shí)現(xiàn)

    本文主要介紹了Python如何手動(dòng)編寫一個(gè)自己的LRU緩存裝飾器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 解決jupyter notebook打不開無反應(yīng) 瀏覽器未啟動(dòng)的問題

    解決jupyter notebook打不開無反應(yīng) 瀏覽器未啟動(dòng)的問題

    這篇文章主要介紹了解決jupyter notebook打不開無反應(yīng) 瀏覽器未啟動(dòng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 最新評(píng)論