gpt4 book ai didi

c - sendmsg() 函数内部做什么?

转载 作者:行者123 更新时间:2023-11-30 19:38:35 29 4
gpt4 key购买 nike

我想知道内核如何使用这个 sendmsg() 函数填充 ip header 。

sendmsg() 函数用于在较少的连接中发送消息通过套接字。我们向该函数传递 3 个参数。它们是,文件描述符,msghdr 结构、标志。

msghdr结构中,我给出了发送数据包的目标IP。在这里,对于通过以太网卡发送的每个数据包,我们肯定会填写基于 OSI 层的 header 。那么使用sendmsg()函数,内核如何获取msghdr结构中指定的ip并填充该ipto ip header 将数据发送到目标系统?

谁能给这个问题一个明确的解释?

最佳答案

正如你所说,你已经指定了目标IP。源 IP 由 Linux 内核从发送数据包的接口(interface)中选取。它可以根据应用程序是否在某个接口(interface)上调用“bind”而改变。

关于c - sendmsg() 函数内部做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37858672/

29 4 0
文章推荐: c# - 如何将 IEnumerable 转换为 IEnumerable