【发布时间】:2016-01-21 10:56:02
【问题描述】:
我在内核空间中使用 UDP。当某个数据包传入时,我将其存储在workqueue_struct 上,然后进行处理。
一切正常。现在我想向客户发送答案。所以,我需要来自struct sock 的 IPv4 地址。
我找到了函数kernel_getsockname(),但这个函数没有返回sockaddr_in,我需要返回sock_sendmsg()。
我的问题是:如何从struct sock 获得sockaddr_in?
【问题讨论】:
-
除非您的 UDP 套接字已连接,否则您无法从
sock获取sockaddr_in,因为sockaddr_in绑定到数据包,而不是套接字。添加一些有关您对数据包的了解(结构)的详细信息。 -
感谢您的回复。我想向向我发送消息的主机发送答案。 ((我使用这部分代码:github.com/joninvski/iptables_dev_examples/blob/master/…))
标签: c linux linux-kernel