python网络编程之数据传输UDP实例分析


Posted in Python onMay 20, 2015

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
从零学Python之引用和类属性的初步理解
May 15 Python
Python中type的构造函数参数含义说明
Jun 21 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
Mar 31 Python
Python用for循环实现九九乘法表
May 31 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
python redis 删除key脚本的实例
Feb 19 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
Python搭建HTTP服务过程图解
Dec 14 Python
用python解压分析jar包实例
Jan 16 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 Python
在Python中使用swapCase()方法转换大小写的教程
May 20 #Python
python计算时间差的方法
May 20 #Python
python中sys.argv参数用法实例分析
May 20 #Python
python文件操作之目录遍历实例分析
May 20 #Python
Python中使用strip()方法删除字符串中空格的教程
May 20 #Python
python字典排序实例详解
May 20 #Python
在Python中操作字符串之startswith()方法的使用
May 20 #Python
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP写杨辉三角实例代码
2011/07/17 PHP
php实现word转html的方法
2016/01/22 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Python中Collection的使用小技巧
2014/08/18 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
淘宝店策划方案
2014/06/07 职场文书
小学生环保标语
2014/06/13 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
转让协议书范本
2014/09/13 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
太行山上观后感
2015/06/05 职场文书
儿子满月酒致辞
2015/07/29 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers
MongoDB支持的索引类型
2022/04/11 MongoDB
MySQL数据库 任意ip连接方法
2022/05/20 MySQL