如何在 Linux 内核模块中从 char* 填充 sockaddr_in?

问题描述 投票:0回答:1

我正在按照“如何在内核空间中创建 UDP 服务器”中的示例代码尝试从 Linux 内核模块发送 UDP 数据包

我对内核空间的编程不太熟悉。

在用户空间我可以写:

struct sockaddr_in txAddr;
txAddr.sin_addr.s_addr = inet_addr("192.168.2.10");

但是

inet_addr
在内核中似乎不可用。

我将如何在内核空间中做到这一点?

c linux-device-driver
1个回答
0
投票

您手动完成:

txAddr.sin_addr.s_addr = 0x0a02a8c0;

假设您的机器是小端字节序,这会将网络字节顺序(即大端字节序)的字节放入字段中。

© www.soinside.com 2019 - 2024. All rights reserved.