使用PYTHON接收多播数据的代码


Posted in Python onMarch 01, 2012

首先声明,这不是我写的,而是我找到的,但是别人写的相当好。

# UDP multicast examples, Hugo Vincent, 2005-05-14. 
import socket def send(data, port=50000, addr='239.192.1.100'): 
"""send(data[, port[, addr]]) - multicasts a UDP datagram.""" 
# Create the socket 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
# Make the socket multicast-aware, and set TTL. 
s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 20) # Change TTL (=20) to suit 
# Send the data 
s.sendto(data, (addr, port)) 
def recv(port=50000, addr="239.192.1.100", buf_size=1024): 
"""recv([port[, addr[,buf_size]]]) - waits for a datagram and returns the data.""" 
# Create the socket 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
# Set some options to make it multicast-friendly 
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
try: 
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) 
except AttributeError: 
pass # Some systems don't support SO_REUSEPORT 
s.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_TTL, 20) 
s.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_LOOP, 1) 
# Bind to the port 
s.bind(('', port)) 
# Set some more multicast options 
intf = socket.gethostbyname(socket.gethostname()) 
s.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton(intf) + socket.inet_aton('0.0.0.0')) 
s.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(addr) + socket.inet_aton('0.0.0.0')) 
# Receive the data, then unregister multicast receive membership, then close the port 
data, sender_addr = s.recvfrom(buf_size) 
s.setsockopt(socket.SOL_IP, socket.IP_DROP_MEMBERSHIP, socket.inet_aton(addr) + socket.inet_aton('0.0.0.0')) 
s.close() 
return data
#!/usr/bin/env python 
from socket import *from time import sleep,time,ctime 
HOST = '229.0.0.15'PORT = 9999BUFSIZ = 1024ADDR = (HOST, PORT) 
udpCliSock = socket(AF_INET, SOCK_DGRAM) 
data = 't'*200count = 0while(count<100 ): udpCliSock.sendto(data, ADDR) sleep(1) count = count+1 
udpCliSock.close()
Python 相关文章推荐
Python 文件和输入输出小结
Oct 09 Python
Windows下为Python安装Matplotlib模块
Nov 06 Python
使用Python生成XML的方法实例
Mar 21 Python
基于python(urlparse)模板的使用方法总结
Oct 13 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
python实现日常记账本小程序
Mar 10 Python
python spyder中读取txt为图片的方法
Apr 27 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
python下载微信公众号相关文章
Feb 26 Python
基于pandas向csv添加新的行和列
May 25 Python
用python修改excel表某一列内容的操作方法
Jun 11 Python
使用PYTHON创建XML文档
Mar 01 #Python
基于python的汉字转GBK码实现代码
Feb 19 #Python
python 装饰器功能以及函数参数使用介绍
Jan 27 #Python
Python常见文件操作的函数示例代码
Nov 15 #Python
python 控制语句
Nov 03 #Python
python 不关闭控制台的实现方法
Oct 23 #Python
python中将阿拉伯数字转换成中文的实现代码
May 19 #Python
You might like
php 删除记录实现代码
2009/03/12 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
python实现聚类算法原理
2018/02/12 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
2013年入党人员的自我鉴定
2013/10/25 职场文书
社区七一党员活动方案
2014/01/25 职场文书
学校门卫岗位职责
2014/03/16 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
领导离职感言
2015/08/03 职场文书
浅析Django接口版本控制
2021/06/26 Python