【发布时间】:2016-07-07 12:48:31
【问题描述】:
我正在 linux 内核 中基于 UDP 实现一个协议,并希望在收到数据包时从内核中发送回复。为此,我想运行ip4_datagram_connect 以获取到目的地(即接收数据包中的源地址)的路由,然后发送回复。
要调用ip4_datagram_connect,我需要填写一个sockaddr_in 结构作为地址传递给函数。对比一下,
struct sockaddr_in
unsigned short sin_port;
struct in_addr sin_addr;
结构 udphdr
__be16 source;
和结构 iphdr
__be32 saddr;
所以我的问题是,我是否需要任何辅助函数来将数据包头中的地址和端口复制到 sockaddr_in 结构中(就像我们在套接字编程中如何使用 htons 等一样)?
【问题讨论】:
标签: linux-kernel network-programming endianness