如何在 Haskell 中指定多播套接字的本地绑定接口?

2024-02-26

我已经尝试过 Network.Multicast 包并且它确实有效,但是,我找不到为多播套接字指定本地绑定接口(“bond0”或“bond1”等)的方法。我知道在C中我需要使用ioctl将键转换为struct sockaddr_in,然后将该结构提供给setsockopt的IPPROTO_IP系列下的IP_MULTICAST_IF选项,但我不知道如何在Haskell中执行此操作。有人能帮忙吗?谢谢!


在网络多播 [1] 的源代码中,我看到在 setInterface 函数中调用了 set ip_multicast_if 。它总是被调用,结果为inet_addr在您传入的主机字符串上。

[1] http://hackage.haskell.org/packages/archive/network-multicast/0.0.6/doc/html/src/Network-Multicast.html http://hackage.haskell.org/packages/archive/network-multicast/0.0.6/doc/html/src/Network-Multicast.html

我想您需要编写自己的 ffi 绑定和函数来完成您想要的操作。但根据网络多播中的代码,这样做应该很简单,而且我确信一旦你这样做,这将是库的一个受欢迎的补丁。

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

如何在 Haskell 中指定多播套接字的本地绑定接口? 的相关文章

  • 具有相同容器端口的多个 docker 容器连接到同一网络

    我有一个依赖于多个 Docker 容器的应用程序 我使用 docker compose 以便所有这些都位于同一网络中以进行容器间通信 但是 我的两个容器正在各自容器内侦听相同的端口 8080 但是映射到主机上的不同端口 8072 8073
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 纯函数怎么能做IO呢?

    我最近了解到莫纳德随机数 http hackage haskell org package MonadRandom 0 1 13 docs Control Monad Random Class html t 3aMonadRandom图书馆
  • Scrapy FakeUserAgentError:获取浏览器时发生错误

    我使用 Scrapy FakeUserAgent 并在我的 Linux 服务器上不断收到此错误 Traceback most recent call last File usr local lib64 python2 7 site pack
  • 如何在 Haskell 中向右或向左移动列表的 1 个元素?

    嗨 我一直在寻找答案 但找不到 假设我们有一个像这样的列表 1 10 4 5 3 我怎样才能将 5 向左移动 使这个列表变成 1 10 5 4 3 我尝试过了swapElementsAt通过找到该元素的索引 但它看起来非常不足 swapEl
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 调试断言失败。表达式(流!=NULL)

    我收到以下错误 调试断言失败 表达式 流 NULL 文件 f dd vctools crty bld self x86 crt src fwrite c 创建 4 个线程时 CPU 使用率 100 该代码最初运行良好一段时间 然后给出此错误
  • 将 num 的签名键入 double?

    我才刚刚开始为你学习 Haskell 以获得伟大的好处 并且我在类型类方面遇到了一些麻烦 我想创建一个接受任何数字类型并强制其为双精度的函数 我的第一个想法是定义 numToDouble Num gt Double 但我认为这不起作用 因为
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • Haskell,堆栈:找到可执行文件

    我正在寻找类似的东西 stack whereis hasktags where whereis行为或多或少类似于 UNIXwhereis命令 hasktags是这样运行的 stack exec hasktags stack exec whe
  • Haskell 中的分类结构

    Hask通常被认为是一个范畴 其对象是类型 态射是函数 然而 我看到 Conor McBride pigworker 警告不要使用Hask多次 1 https stackoverflow com a 45905082 474311 2 ht
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • Linux 中热插拔设备时检测设备是否存在

    我正在运行 SPIcode http lxr free electrons com source drivers spi spi omap2 mcspi c在熊猫板上 我想知道其中的哪个功能code http lxr free electr
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 为什么Apache MPM prefork.c 使用互斥体来保护accept()?

    我坐下来读书Apache 的 MPM prefork c http code metager de source xref apache httpd server mpm prefork prefork c这段代码使用了一个名为accept
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何

随机推荐

  • 如何使用appledoc生成类似Apple的文档

    我正在阅读如何生成类似 Apple 的 HTML 文档的文章 here http gentlebytes com appledoc docs examples basic 我的问题是命令行的用途 我们如何将命令行和 appledoc xco
  • Outlook JS Addin - 撰写表单 - 如何检查事件/消息是否已保存?

    Outlook 加载项 office js 的撰写表单中是否有一种方法可以检查表单后面的对象 在我的例子中是日历事件 是否已保存 检查物品ID 如果未定义 则消息未存储 如果存在 则消息来自草稿 请参阅Office context mail
  • Process.GetProcesses 返回所有登录用户的进程?

    在允许多个用户同时登录一台机器的windows环境中 当我们调用Process GetProcesses 它是否返回进行此调用的登录用户的进程 还是返回所有登录用户的进程 我查看了 MSDN 页面 但找不到此信息 该函数返回本地计算机上运行
  • socket.error[Errno 99] 无法分配请求的地址

    昨天 我创建了一个名为的 python 脚本sniffer ip header decode py 但我遇到了以下错误 Traceback most recent call last File sniffer ip header decod
  • 通过 (...) 时避免参数重复

    考虑功能 f lt function x X mean c x X 我怎样才能自动 通过操纵f 更改签名f 这样它就可以与lapply 即不返回以下明显的错误 lapply X list 1 FUN f X 1 Error in lappl
  • XMLHttpRequest:浏览器支持 sendAsBinary?

    Firefox 是唯一支持 sendAsBinary 方法的吗 目前 我相信只有 FF3 支持此功能 尽管有一个解决方法 http code google com p chromium issues detail id 35705 for
  • Web 材质组件与 Angular Material 2 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 MDL Material Design Lite 项目的后继项目推出Web 的材料组件 http
  • 如何在 React Native 中打开现有项目?

    我第一次使用 React Native 时 在我的 MacBook 上成功安装了用于 iOS 开发的所有内容 并且能够创建一个项目并在手机上查看它 然而 现在我回到它 我似乎无法弄清楚如何打开我现有的项目 我尝试过寻找指南 但我能找到的唯一
  • 在尾递归函数中使用管道时出现堆栈溢出异常

    我有一个简单的游戏循环实现 let gameLoop gamestate let rec innerLoop prev gamestate let now getTicks let delta now prev gamestate gt r
  • \363\353\377\377\377\177 是什么?

    gdb p char 0x7fffffffe9c8 16 0x7fffffffe9c8 363 353 377 377 377 177 它看起来不像ascii 也不像多字节 那是什么 这些都是octal http en wikipedia
  • 如何改变PCM数据流的音量(实验失败)

    Solved 我的代码以前从未用于处理有符号值 因此字节 gt 短转换错误地处理了符号位 这样做正确地解决了问题 问题是 我正在尝试更改 PCM 数据流的音量 我可以从立体声文件中提取单通道数据 通过跳过 复制它们 插入零 等方式对样本进行
  • iOS 6 无法自动旋转

    在我维护的应用程序中 在纵向和纵向颠倒模式下应该发生旋转 所有旋转均在摘要面板中启用 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceO
  • R中多个列表的元素均值

    我有十个巨大的列表 每个列表有七个元素 但元素很大 我需要计算这些列表的元素平均值 那么如果有A1 A2 A3 A10列表 我需要计算 mean1 mean A1 1 A2 1 A3 1 A10 1 mean7 mean A1 7 A2 7
  • 通过 ContentValues 将时间戳插入数据库

    在Android中 是否可以使用以下命令将时间戳插入数据库中ContentValues 当我尝试使用这样的方法添加它时 ContentValues args new ContentValues args put MY DATE my dat
  • 使用 C++ 用户定义的文字来初始化数组

    我有一堆测试向量 以十六进制字符串的形式呈现 MSG 6BC1BEE22E409F96E93D7E117393172A MAC 070A16B46B4D4144F79BDD9DD04A287C MSG 6BC1BEE22E409F96E93
  • 从同一个 onclick 调用两个函数[重复]

    这个问题在这里已经有答案了 HTML 和 JavaScript 如何从一个 onclick 事件调用 2 个函数 这是我的代码
  • .CSHTML 中的 Visual Studio 2010 代码格式 - 缩进不正确

    需要解释的问题非常简单 在 Visual Studio 2010 SP1 中 我在使用 Razor 时发现大括号出现奇怪的缩进问题 它看起来是这样的 div div div div if true b Hi b div div div di
  • Authorize.net 支付集成 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找使用 PHP 与网站进行 Authorize net 支付集成 我的问题是 1 我可以在哪里找到使用 PHP 执行此操作的教程 开发指南和
  • 在 Clojure 中查找与谓词匹配的元素的索引?

    使用 Clojure 如何找到该向量中第一个具有正值的索引 1 0 3 7 9 我知道你可以相当优雅地得到第一个结果first and filter first filter pos 1 0 99 100 101 这段代码返回值99 我想要
  • 如何在 Haskell 中指定多播套接字的本地绑定接口?

    我已经尝试过 Network Multicast 包并且它确实有效 但是 我找不到为多播套接字指定本地绑定接口 bond0 或 bond1 等 的方法 我知道在C中我需要使用ioctl将键转换为struct sockaddr in 然后将该