Python 多播接收器中的重复数据包

2023-12-10

有一个脚本可以打开套接字并从中读取多播(来自Python 中的多播)

import socket
import struct

MCAST_GRP = '224.1.1.1'
MCAST_PORT = 1234

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('', MCAST_PORT))
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)

sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)

while True:
  print sock.recv(10240)

只要我不与另一个多播组的同一脚本并行运行,一切都很好,但端口是相同的,例如

rtp://224.1.1.1:1234
rtp://224.1.1.2:1234

启动后,第二个脚本开始混乱 - 第一个脚本看到第二个脚本的数据包,第二个脚本看到第一个脚本的数据包。

我尝试做mcast.py- 类似的结果。

为什么会出现这种情况以及如何治疗?

UPD Fix

-sock.bind(('', MCAST_PORT))
+sock.bind((MCAST_GRP, MCAST_PORT))

侦听端口上所有传入连接的应用程序将获取发送到该端口的所有消息,无论哪个应用程序启动了多播组成员身份。为了缓解这种情况,让每个应用程序监听它期望来自的多播地址,方法是将其指定为地址元组中的第一个参数bind.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 多播接收器中的重复数据包 的相关文章

随机推荐

  • 使用 Rcpp 属性允许 C++ 常量作为默认函数参数

    我在 R 包中使用 rcpp 创建了一个 cumsum 函数 它将对向量进行累积求和 直到达到用户定义的上限或下限 然而 如果希望将累积和限制在上方 则用户仍必须指定下限 Example a c 1 1 1 1 1 1 1 如果我想高潮a上
  • 在 UI 元素上方的特定位置显示弹出按钮

    我有 gridView 它的项目非常简单 每个 gridViewItem 上都有按钮 在此按钮上单击我想显示一个与 gridViewItem 内容相同的浮出控件 但也显示更多数据 这很简单 但我想将弹出窗口放置在 gridViewItem
  • 类型转换器不适用于 @Query 中的集合

    我有一个名为 Events 的实体 其定义如下 Entity tableName Events data class Event PrimaryKey val id Long val name String val venues Set
  • Python:定义具有依赖属性的类

    我的目标是编写一个可用于计算设备所有属性的类 import numpy as np class pythagoras def init self a None b None c None self a a self b b self c c
  • jQuery .each 中的 setTimeout() 问题

    以下代码将无法正常工作 我尝试过不同的变体并到处搜索但没有运气 i 1 var timer new Array jQuery a each function i timer i setTimeout jQuery this remove i
  • C++:调用临时对象的构造函数

    假设我有以下内容 int main SomeClass return 0 如果没有优化 SomeClass 构造函数将被调用 然后它的析构函数将被调用 对象将不复存在 然而 根据 IRC 频道 如果编译器认为 SomeClass 构造函数
  • Gstreamer 的 OpenCV 3.0.0 错误

    我刚刚按照本教程安装了 OpenCV 3 0 http rodrigoberriel com 2014 10 installing opencv 3 0 0 on ubuntu 14 04 我在安装过程中没有遇到任何错误 但是 当我尝试运行
  • 如何使用 AJAX 上传文件而不使用 multipart?

    我的应用程序允许用户上传的唯一文件是图像 并且它们始终作为表单中的唯一输入字段上传 因此 多部分是不必要的 并且我可以在没有多部分解析器的情况下更轻松地使用该文件 如何使用 AJAX 和 vanilla Javascript 在不使用分段的
  • 如何在通过Spark生产消息的Kafka中均匀分布数据?

    我有一个将数据写入 Kafka 的流作业 我注意到其中一个 Kafka 分区 3 比其他分区获取更多的数据 partition messages earlist offset next offset 1 166522754 58616033
  • std::getline 用于 ifstream 但使用 char* 而不是字符串 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想将 getline 函数与char 我不想使用std string因为我有一
  • 为什么要在 POST 请求上要求 CSRF 令牌?

    我的理解是 CSRF 可以防止攻击者使用 img 标签让受害者的浏览器发送一个请求 该请求将使用会话 cookie 进行身份验证 鉴于 img 总是使用 GET 请求而不是 POST 提交 那么为什么需要在 POST 请求中要求 CSRF
  • fileInput 中进度条的颜色 -- Shiny

    我正在尝试更改 Shiny 中 fileInput 小部件中上传进度条的颜色 我是一个有点闪亮的新手 在互联网上搜索过但没有结果 有任何想法吗 这是一个示例应用程序 我使用 CSS 将进度条的颜色设置为绿色 ui lt fluidPage
  • 动态循环 htmlwidgets 并为 RMarkdown 添加 knit 格式

    我正在尝试动态创建和循环htmlwidgets例如DT plotly or rbokeh生成自动针织报告 有没有办法添加knitr格式化 例如tabset 进入tagList这个 github 问题中概述的方法https github co
  • java.util.function.Supplier 在 C++ 中的等价物是什么?

    例如 我有以下 Java 代码 public class Main public static void main String args System out println maker Employee new private stat
  • Elasticsearch升级2.3.1 Nest客户端Raw String

    在升级到 elastic 2 3 1 时 我遇到了 Net Nest 客户端的问题 在 Nest 1 0 中 我可以从文件中读取索引的设置 并使用原始字符串在创建时配置索引 有没有一种方法可以实现 Nest 2 0 中类似的功能 或者我是否
  • 有没有办法更改Word文档中的修订作者?

    我想知道是否有办法更改文档中修订的作者 我找到了更改评论作者的方法 但没有找到修订部分的方法 我试图在 Revisions object 文档中找到一个属性 方法来更改它 但我什么也没找到 正如我所说 我已经尝试这样做 Sub Change
  • 如何将数字传递给 TextField JavaFX?

    我正在开发简单的计算器 用户在其中输入两个数字TextField结果显示在结果中TextField 我用了Double parseDouble从输入 TextFields 获取文本并对其应用操作 但我无法将其传递到第三个输入字段 我试图投射
  • 我们进行一些检查后是否可以退出 iOS 应用程序

    如果应用程序已过时 我们不希望用户进入您的应用程序 当我们在应用程序启动之前进行一些日期检查时 是否可以退出 iOS 应用程序 或者可以在加载主视图后退出应用程序吗 在应用程序启动之前 否 当操作系统调用时 启动动画已经在进行中main 一
  • 带有 sqlplus 和密码特殊字符的 Shell 脚本

    我有一个混合 Linux Unix shell 脚本和 sqlplus Oracle 的问题 这让我抓狂 sqlplus 使用如下语法 sqlplus johnF email protected 1521 SID 而且效果很好 然而我的密码
  • Python 多播接收器中的重复数据包

    有一个脚本可以打开套接字并从中读取多播 来自Python 中的多播 import socket import struct MCAST GRP 224 1 1 1 MCAST PORT 1234 sock socket socket soc