使用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的re模块正则表达式操作
May 25 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
Python多重继承的方法解析执行顺序实例分析
May 26 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
Python3 使用pillow库生成随机验证码
Aug 26 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
YUV转为jpg图像的实现
Dec 09 Python
Python requests模块session代码实例
Apr 14 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
python反编译教程之2048小游戏实例
Mar 03 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
浅谈php://filter的妙用
2019/03/05 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jquery使用经验小结
2015/05/20 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
商场中秋节广播稿
2014/01/17 职场文书
高中体育教学反思
2014/01/24 职场文书
总会计师岗位职责
2014/02/19 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
教师先进个人材料
2014/12/17 职场文书
写给父母的感谢信
2015/01/22 职场文书
业务内勤岗位职责
2015/04/13 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
清明节主题班会
2015/08/14 职场文书
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS