C++ UDP Socket端口复用

2024-04-23

如何在 C++ 中创建客户端 UDP 套接字,以便它可以侦听另一个应用程序正在侦听的端口?换句话说,如何在 C++ 中应用端口复用?


我只想监听一个端口

您可以使用嗅探器来做到这一点。只需忽略来自不同端口的数据包即可。

我可能需要阻止它发送一些特定的数据包,因为我的程序将发送它而不是原始应用程序

好吧,在这里我建议你放弃嗅探器,并使用MITM http://en.wikipedia.org/wiki/Man-in-the-middle_attack技术。

您需要依靠 PREROUTING 防火墙规则来divert将数据包发送到“proxy” 应用程序。假设 UDP、Linux、iptables 和 “proxy“在同一主机上运行,​​这就是”proxy“实际上需要做的是:

1.添加防火墙规则divert数据包(如果您愿意,可以手动执行):

iptables -t nat -A PREROUTING -i <iface> -p <proto> --dport <dport>
    -j REDIRECT --to-port <newport>

2.绑定并收听<newport>.

3.中继 2 个端点(客户端和原始目的地)之间的所有流量。如果您正在运行“proxy“在不同的主机上,使用获取套接字 http://www.opengroup.org/onlinepubs/009695399/functions/getsockopt.html with SO_ORIGINAL_DST检索原始目标地址。

这可能听起来很棘手,但是......是的,那是因为它有点棘手:-) 如果我的假设有分歧,请查阅您的防火墙文档。

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

C++ UDP Socket端口复用 的相关文章

随机推荐

  • 计算聚类的 F 度量

    谁能帮我计算一下F measure的总和吗 我知道如何计算召回率和精度 但不知道对于给定的算法如何计算一个 F 测量值 举个例子 假设我的算法创建m集群 但我知道有n相同数据的聚类 由另一个基准算法创建 我找到了一份 pdf 但它没有用 因
  • pandas 数据框的元组列表列表

    我有这个数组 它是相似性计算的结果 它是一个像这样的元组列表 example a b c d a1 b1 c1 d2 在示例中 有 121044 个列表 每个列表有 30 个元组 我想要一个 pandas Dataframe 就像元组的第二
  • 在 Vuetify 组合框中通过 @change 传递目标元素

    我需要通过目标事件updateTags方法 这是下面的组合框 当我打电话给comboActive方法我可以获得目标事件 KeyboardEvent isTrusted true key y code KeyY location 0 ctrl
  • Chrome 中的 FileReader 内存泄漏

    我有一个具有文件上传功能的网页 上传以 5MB 块执行 我想在将每个块发送到服务器之前计算其哈希值 块表示为Blob https developer mozilla org en docs Web API Blob对象 为了计算哈希值 我将
  • 具有非规则形状的 NSTextContainer 示例?

    嗨 我正在使用新的TextKitiOS7 的 API 我正在尝试制作一个UITextView具有不规则形状 到目前为止 我在视图控制器中有 void loadView self view UIView alloc initWithFrame
  • 如何使对象 ID 易于理解?

    Storyboard 上的每个 UIView 都有一个唯一的对象 ID 如下所示 kvf NI koG 我想知道是否有一种方法可以使其更加人性化 例如 myLabel 您无法通过 Interface Builder 更改对象 ID Xcod
  • 为什么 ListView.getCheckedItemPositions() 没有返回正确的值?

    该应用程序有一个ListView启用多项选择后 它在 UI 中按预期工作 但是当我使用以下代码读取值时 Log i TAG Entered SearchActivity saveCategoryChoice SparseBooleanArr
  • Angular svg 或 canvas 使用颜色渐变

    我正在使用 Angular 和 d3 创建一个甜甜圈 在指令中 我可以非常简单地给填充区域指定颜色 在这个 plunker 中它是蓝色 但我想做的是让 SVG 平滑地改变其颜色 0 33 3 red 33 4 66 66 orange 66
  • 为什么我无法使用 Resources.getSystem() 而不会出现运行时错误?

    public class BobDatabase extends SQLiteOpenHelper private static final String DATABASE NAME bob db private static final
  • SQL 排序依据 - 硬编码值列表

    我有一个查询 其中返回记录状态列 记录状态列有几个值 例如 活动 已删除 等 我需要按 活动 已删除 等顺序对结果进行排序 我目前正在创建 CTE 来将每组记录进行 UNION ALL 是否有更好的动态方法来完成查询 谢谢你 您可以使用CA
  • TypeScript 扩展模块中的对象

    我想做的事情确实类似于this https stackoverflow com questions 12802383 extending array in typescript and this https stackoverflow co
  • ICE61:该产品应仅删除其自身的旧版本

    我正在关注第二个答案here https stackoverflow com questions 500703 how to get wix to update a previously installed version of a pro
  • underscore.js: _.throttle(函数, 等待)

    根据下划线文档 http underscorejs org throttle throttle 函数 等待 创建并返回一个新的 所传递函数的节流版本 在调用时 重复 实际上最多只会调用原始函数一次 每等待毫秒 对于速率限制事件很有用 发生的
  • 使用列表中的项目更改嵌套字典的字典中的值?

    如何根据列表的值修改 创建嵌套字典的字典中的键 值 其中列表的最后一项是字典的值 其余项冷藏到字典中的键 这将是列表 list adddress key1 key1 2 key1 2 1 value 这只会在解析命令行参数等情况下出现问题
  • 加载 DOM 后如何运行 jQuery 的后备副本?

    以下是a中的第一行代码
  • Struts2 瓷砖 org.apache.tiles.extras.complete.CompleteAutoloadTilesListener 集成错误

    我正在关注这里发布的答案 使用 struts2 tiles plugin 在图块定义中使用 OGNL 和通配符 https stackoverflow com questions 10050433 ognl and wildcards wo
  • 文本段的名称从何而来?

    传统的汇编器和更高级别的编译器使用多个内存segments 根据预期用途 因此 有数据段 堆栈段 bss 和文本段 文本段也称为代码段 Text部分 为了机器码 我问过所有我能找到的老前辈 像机器代码这样难以阅读的东西是如何被称为 文本段
  • Javascript:setTimeout() - 需要帮助

    我目前正在网页上执行突出显示功能 并为此使用 jquery 插件 我的代码如下所示 var input function var matchword searchbox val if matchword body removeHighlig
  • 当同时按下两个按钮时

    我有一个小问题 我有一个表单 这是我的登录表单 然后我还有另一个表单 这是我的添加用户表单 当我单击登录表单的登录按钮时 它需要检查是否同时按住了 Shift 和 Control 键 如果两者均未按下 则不应打开添加用户表单 但如果它们都被
  • C++ UDP Socket端口复用

    如何在 C 中创建客户端 UDP 套接字 以便它可以侦听另一个应用程序正在侦听的端口 换句话说 如何在 C 中应用端口复用 我只想监听一个端口 您可以使用嗅探器来做到这一点 只需忽略来自不同端口的数据包即可 我可能需要阻止它发送一些特定的数