国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python網絡編程之數據傳輸UDP實例分析

2020-02-23 01:17:58
字體:
來源:轉載
供稿:網友

本文實例講述了python網絡編程之數據傳輸UDP實現方法。分享給大家供大家參考。具體分析如下:

一、問題:

你覺得網絡上像msn,qq之類的工具在多臺機器之間互相傳輸數據神秘嗎?你也想玩一下在兩臺機器之間傳數據嗎?今天讓python告訴我們基本原理吧,當然只是做簡單的了解,實際情況復雜的多。
     我們今天用python實現一個簡單的udp程序。

二、程序實現:

1) 使用模塊

(socket)套接字模塊: 套接字模塊是一個非常簡單的基于對象的接口,它提供對低層BSD套接字樣式網絡的訪問 。使用該模塊可以實現客戶機和服務器套接字。

所謂的套接字是為特定網絡協議(例如TCP/IP,ICMP/IP,UDP/IP等)套件對上的網絡應用程序提供者提供當前可移植標準的對象。 它們允許程序接受并進行連接,如發送和接受數據。為了建立通信通道,網絡通信的每個端點擁有一個套接字對象極為重要 。

2) 建立服務器

第1步:創建socket對象

s = socket.socket(family,type)

family 的值可以是AF_UNIX(unix域,用于同一臺機器上的進程間通訊),也可以是AF_INET(對應于ip協議的TCP或UDP)

Type參數的值可以是: SOCK_STREAM(流套接字)或者 SOCK_DGRAM(數據報文套接字),SOCK_RAW(raw套接字)。

我們這里使用udp數據報文套接字;

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

第2步:將socket綁定到指定地址上:s.bind(address),address 必須是一個雙元素組,(host,port)

我們這里綁定本機8081端口: s.bind(("", port))

第3步:調用recvfrom方法接收客戶端發來的數據,recvfrom方法需指定可接收的最大數據量。將返回數據內容和客戶端地址;

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) 客戶端建立

建立客戶端很簡單,只用創建套接字對象,指定端口,調用sendto方法傳輸數據就ok了,如下;

import socket port = 8081 host = "localhost" s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto("Hello! It's working.", (host, port))

使用數據報方式發送簡短的文本信息是非常簡單的,如果你想要可靠的傳輸數據,這種方法是不可行,如果服務器不可用,信息就會丟失,下一節將學習如何使用tcp協議來傳輸信息。

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 忻城县| 普陀区| 景洪市| 衢州市| 定结县| 佛山市| 竹溪县| 正镶白旗| 花莲县| 石屏县| 衡山县| 平舆县| 长沙县| 佛冈县| 铁力市| 蒙山县| 玉林市| 宁国市| 红河县| 靖远县| 枣强县| 静乐县| 平安县| 昂仁县| 平顺县| 明星| 荥阳市| 武威市| 南丰县| 海盐县| 保德县| 黎平县| 邳州市| 静安区| 大名县| 克拉玛依市| 汝阳县| 白山市| 贡觉县| 手游| 枝江市|