我在内核空间使用UDP。当某个包传入时,我将其存储在workqueue_struct上,然后进行处理。
一切正常。现在我想把答案发给客户。所以,我需要来自struct sock的IPv4地址。
我找到了函数kernel_getsockname(),但这个函数没有返回sockaddr_in,我需要sock_sendmsg()
我的问题是:如何从sockaddr_in获取struct sock

最佳答案

客户端地址是一个struct sockaddr_-in,然后您可以从client_-addr.sin_-addr.s_-addr获取ip地址。它将是一个32位无符号整数。
例如。
struct sockaddr_in*client addr=(struct sockaddr_in*)&client_addr;
int ip=客户端地址->sin_addr.s_addr;

关于c - 内核空间中的Linux UDP获取sockaddr_in,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33276344/

10-15 16:27