【发布时间】:2016-10-20 01:38:15
【问题描述】:
从linux中char设备驱动的内核模块打开socket是否可行?我正在尝试通过网络模拟 char 设备的输出/输入流。但据我搜索,从 char 设备打开套接字是不可能的?从 char 设备驱动程序访问 udp / tcp 端口的任何其他选项?
【问题讨论】:
标签: c sockets linux-device-driver
从linux中char设备驱动的内核模块打开socket是否可行?我正在尝试通过网络模拟 char 设备的输出/输入流。但据我搜索,从 char 设备打开套接字是不可能的?从 char 设备驱动程序访问 udp / tcp 端口的任何其他选项?
【问题讨论】:
标签: c sockets linux-device-driver
是的,您可以在内核代码中打开套接字并与远程主机通信,一个生动的例子是NFS模块,它使用sunrpc作为其协议,它们都运行在内核模块中。
首先,查看kernel_connect[1] 启动连接,查看kernel_sock_shutdown 关闭连接。 socket.c 中有完整的 api 列表。
[1]http://lxr.free-electrons.com/source/net/socket.c#L3212
【讨论】: