python網(wǎng)絡編程之數(shù)據(jù)傳輸UDP實例分析
本文實例講述了python網(wǎng)絡編程之數(shù)據(jù)傳輸UDP實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
一、問題:
你覺得網(wǎng)絡上像msn,qq之類的工具在多臺機器之間互相傳輸數(shù)據(jù)神秘嗎?你也想玩一下在兩臺機器之間傳數(shù)據(jù)嗎?今天讓python告訴我們基本原理吧,當然只是做簡單的了解,實際情況復雜的多。
我們今天用python實現(xiàn)一個簡單的udp程序。
二、程序?qū)崿F(xiàn):
1) 使用模塊
(socket)套接字模塊: 套接字模塊是一個非常簡單的基于對象的接口,它提供對低層BSD套接字樣式網(wǎng)絡的訪問 。使用該模塊可以實現(xiàn)客戶機和服務器套接字。
所謂的套接字是為特定網(wǎng)絡協(xié)議(例如TCP/IP,ICMP/IP,UDP/IP等)套件對上的網(wǎng)絡應用程序提供者提供當前可移植標準的對象。 它們允許程序接受并進行連接,如發(fā)送和接受數(shù)據(jù)。為了建立通信通道,網(wǎng)絡通信的每個端點擁有一個套接字對象極為重要 。
2) 建立服務器
第1步:創(chuàng)建socket對象
s = socket.socket(family,type)
family 的值可以是AF_UNIX(unix域,用于同一臺機器上的進程間通訊),也可以是AF_INET(對應于ip協(xié)議的TCP或UDP)
Type參數(shù)的值可以是: SOCK_STREAM(流套接字)或者 SOCK_DGRAM(數(shù)據(jù)報文套接字),SOCK_RAW(raw套接字)。
我們這里使用udp數(shù)據(jù)報文套接字;
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
第2步:將socket綁定到指定地址上:s.bind(address),address 必須是一個雙元素組,(host,port)
我們這里綁定本機8081端口: s.bind(("", port))
第3步:調(diào)用recvfrom方法接收客戶端發(fā)來的數(shù)據(jù),recvfrom方法需指定可接收的最大數(shù)據(jù)量。將返回數(shù)據(jù)內(nèi)容和客戶端地址;
import socket
port = 8081
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", port))
print "waiting on port:", port
while True:
data, addr = s.recvfrom(1024)
print "Received:", data, "from", addr
3) 客戶端建立
建立客戶端很簡單,只用創(chuàng)建套接字對象,指定端口,調(diào)用sendto方法傳輸數(shù)據(jù)就ok了,如下;
import socket
port = 8081
host = "localhost"
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto("Hello! It's working.", (host, port))
使用數(shù)據(jù)報方式發(fā)送簡短的文本信息是非常簡單的,如果你想要可靠的傳輸數(shù)據(jù),這種方法是不可行,如果服務器不可用,信息就會丟失,下一節(jié)將學習如何使用tcp協(xié)議來傳輸信息。
希望本文所述對大家的Python程序設計有所幫助。
- python使用socket高效傳輸視頻數(shù)據(jù)幀(連續(xù)發(fā)送圖片)
- python使用tcp傳輸圖片數(shù)據(jù)
- python 中Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格
- 對python中基于tcp協(xié)議的通信(數(shù)據(jù)傳輸)實例講解
- 在python環(huán)境下運用kafka對數(shù)據(jù)進行實時傳輸?shù)姆椒?/a>
- 使用python實現(xiàn)http及ftp服務進行數(shù)據(jù)傳輸?shù)姆椒?/a>
- Python爬蟲抓取手機APP的傳輸數(shù)據(jù)
- python實現(xiàn)udp數(shù)據(jù)報傳輸?shù)姆椒?/a>
- Python數(shù)據(jù)傳輸黏包問題
相關文章
python selenium實現(xiàn)發(fā)送帶附件的郵件代碼實例
這篇文章主要介紹了python selenium實現(xiàn)發(fā)送帶附件的郵件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12
解決python3在anaconda下安裝caffe失敗的問題
下面小編就為大家?guī)硪黄鉀Qpython3在anaconda下安裝caffe失敗的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
Python實現(xiàn)對word文檔添加密碼去除密碼的示例代碼
這篇文章主要介紹了Python實現(xiàn)對word文檔添加密碼去除密碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
在Python中操作列表之List.append()方法的使用
這篇文章主要介紹了在Python中操作列表之List.append()方法的使用,是Python入門學習中的基礎知識,需要的朋友可以參考下2015-05-05
python數(shù)據(jù)分析之用sklearn預測糖尿病
這篇文章主要介紹了python數(shù)據(jù)分析之用sklearn預測糖尿病,文中有非常詳細的代碼示例,對正在學習python數(shù)據(jù)分析的小伙伴們有很好地幫助,需要的朋友可以參考下2021-04-04

