【发布时间】:2011-10-27 16:06:49
【问题描述】:
当我打开一个原始套接字是 OS X,构建我自己的 udp 数据包(标头和数据)并调用 sendto() 时,我收到错误“无效参数”。这是来自网站http://www.tenouk.com/Module43a.html 的示例程序“rawudp.c”,它演示了这个问题。该程序(在添加字符串和 stdlib #includes 之后)在 Fedora 10 下运行,但在 OS X 下因“无效参数”而失败。谁能指出为什么这在 OS X 中失败?我看了又看,又看了看 sendto() 调用,但所有参数看起来都不错。我正在以 root 等身份运行代码。是否存在内核设置甚至阻止 uid 0 可执行文件通过 OS X Snow Leopard 中的原始套接字发送数据包?谢谢。
【问题讨论】:
-
这是一个很好的问题,但它确实会从程序员那里得到更好的答案。出于这个原因,我投票将其迁移到stackoverflow.com。一旦有更多人投票,它将自动发生,因此您无需在此处重新创建。