linux - 如何从 Linux 内核进行 UDP 广播?

标签 linux networking module kernel

我正在开发一个实验性的 Linux 内核模块,所以...

如何从 Linux 内核UDP 广播

最佳答案

-13 是-EACCES。你有设置 SO_BROADCAST 吗?我相信 sock_sendmsg 返回 -EACCES 如果未设置 SO_BROADCAST 并且您正在发送到广播地址。


您正在寻找 以获取错误代码。


你在什么内核版本下开发?我想简要浏览一下内核源代码。我没有看到如何从 sock_set 返回 -ENOPKG,但我确实看到可以返回 -ENOPROTOOPT(在内核 2.6.27 中是错误号 92)。

哦——如果您愿意,请在您设置 SO_BROADCAST 的地方重新发布那段代码。我没有记下它,我想再看一遍。


尝试用 SOL_UDP 调用它。我认为这就是您要找的。我在任何地方都没有 2.6.18 构建环境设置来玩这个,但试一试。

不——没关系——这不会做你想做的。我应该在源代码中进一步阅读。我会继续寻找。这有点有趣。


我想你可以自己设置广播标志! 微笑

lock_sock(sock->sk);
sock->sk->broadcast = 1;
release_sock(sock->sk);

你把我难住了,我得去 sleep 了。我确实找到了这段可能有帮助的代码,尽管这些人并没有进行广播。

http://kernelnewbies.org/Simple_UDP_Server

祝你好运 -- 我希望我能为你解决这个问题。

关于linux - 如何从 Linux 内核进行 UDP 广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/346361/

相关文章:

php - 动态安排提醒电子邮件的最佳方式?有什么比 cron 更好的吗?

c - UDP C 服务器 sendto() 错误 : Can't assign requested address

module - 如何使用 smarty 模板化 prestashop 模块管理部分

c++ - 以分钟为单位查找与 GMT 的本地时区差异

linux - SIGKILL 权限策略是什么?

ios - 如何 didAcceptConnectionWithInputStream :outputStream: get called?

linux - 当我尝试编译时生成 : Nothing to be done for `all' .

python - learnpython.org 模块练习

linux - 从程序员的角度看 Linux 内核和 UNIX 内核(如 FreeBSD)的区别

c - 使用套接字手动建立与 ftp 服务器的连接