Network programming 网络设备驱动程序

Network programming 网络设备驱动程序,network-programming,linux-kernel,linux-device-driver,Network Programming,Linux Kernel,Linux Device Driver,我想为基于网络的设备编写Linux设备驱动程序。该网络设备仅为输入输出控制,并且该设备通过以太网电缆通过以太网端口连接。如何编写驱动程序?如何在设备和内核之间传输数据?如果设备只是通过以太网连接到Linux机器,那么您根本不需要编写内核驱动程序-用户空间守护进程可以通过AF\u数据包套接字地址系列完全访问以太网。有关详细信息,请参阅手册页。您可以选择TCP或UDP连接通信 对于TCP,您必须选择基于流的传输 但是UDP不是一种可靠的通信方式,它比TCP更快 我建议开始Linux编程,它既有理论意

我想为基于网络的设备编写Linux设备驱动程序。该网络设备仅为输入输出控制,并且该设备通过以太网电缆通过以太网端口连接。如何编写驱动程序?如何在设备和内核之间传输数据?

如果设备只是通过以太网连接到Linux机器,那么您根本不需要编写内核驱动程序-用户空间守护进程可以通过
AF\u数据包
套接字地址系列完全访问以太网。有关详细信息,请参阅手册页。

您可以选择TCP或UDP连接通信

对于TCP,您必须选择基于流的传输 但是UDP不是一种可靠的通信方式,它比TCP更快

我建议开始Linux编程,它既有理论意义,也有实践意义


干杯

谷歌搜索“如何编写以太网设备驱动程序”,感谢您的回复。但我希望通过应用程序访问写驱动程序。无论您想从以太网驱动程序访问什么,都可以通过套接字调用访问。只需强调“套接字编程”。试图在内核中为这样的硬件编写驱动程序是在试图把一个方钉在一个圆孔中。但如果你坚持,您只需启动一个内核线程,该线程使用
AF\u数据包
socket与硬件进行通信。@jhonnash-您还可以指出创建socket时他应该指定的IP地址和端口号吗?@AbhishekSagar-这取决于您是否要为单台客户端服务器或一台服务器和多台服务器编写应用程序客户端通过广播方式。根据您的通信模式,您必须选择IP地址。