python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)


Posted in Python onApril 25, 2014

UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议。在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议。

下面是用python实现UDP服务器的代码:

#!/usr/bin/env python
import socket
address=('127.0.0.1',10000)
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(address)
while 1:
 data,addr=s.recvfrom(2048)
 if not data:
  break
 print "got data from",addr
 print data
s.close()

UDP客户端的代码:

#!/usr/bin/env python
import socket
addr=('127.0.0.1',10000)
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while 1:
 data=raw_input()
 if not data:
  break
 s.sendto(data,addr)
s.close()

运行这两个程序,会显示以下结果:

服务器端:

python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)

客户端:

python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
UDP的应用

在局域网中,如果要想局域网内所有计算机发送数据,可以使用广播,广播不能用TCP实现,可以用UDP实现,接受方收到广播数据后,如果有进程在侦听这个端口,就会接收数据,如果没有进程侦听,数据包会被丢弃。

广播的发送方:

#!usr/bin/env python
import socket
host=''
port=10000
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
s.bind((host,port))
while 1:
 try:
  data,addr=s.recvfrom(1024)
  print "got data from",addr
  s.sendto("broadcasting",addr)
  print data
 except KeyboardInterrupt:
  raise

广播的接收方:

#!/usr/bin/env python
import socket,sys
addr=('<broadcast>',10000)
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
s.sendto("hello from client",addr)
while 1:
 data=s.recvfrom(1024)
 if not data:
  break
 print data

运行广播程序,发送端会显示以下结果:

got data from (‘<地址>',<端口号>)
hello fromclient

接收端会显示以下结果:

(‘broading',(<IP地址>,10000))
Python 相关文章推荐
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
python实现屏保计时器的示例代码
Aug 08 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
python爬取酷狗音乐排行榜
Feb 20 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python 函数中的内置函数及用法详解
Jul 02 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
Python类反射机制使用实例解析
Dec 30 Python
django 实现简单的插入视频
Apr 07 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 #Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 #Python
Python time模块详解(常用函数实例讲解,非常好)
Apr 24 #Python
Python 时间操作例子和时间格式化参数小结
Apr 24 #Python
python抓取网页图片并放到指定文件夹
Apr 24 #Python
python字符串替换示例
Apr 24 #Python
python自动安装pip
Apr 24 #Python
You might like
239军机修复记
2021/03/02 无线电
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
Python set常用操作函数集锦
2017/11/15 Python
python实现汉诺塔算法
2021/03/01 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
资产经营总监岗位职责范文
2013/12/01 职场文书
融资合作协议书范本
2014/10/17 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
公司安全管理制度范本
2015/08/05 职场文书
七夕情人节问候语
2015/11/11 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang