有没有人知道在Linux的内核环境中如何访问网络

zdhzidy 2006-07-28 04:00:51
如题,比如我的一个内核驱动想要把一些数据写到网络上的一台服务器上,有什么好的方法??
...全文
296 点赞 收藏 9
写回复
9 条回复
jammyxu 2006年08月01日
直接參照網卡驅動的sourcecode寫。

或者內核只負責把要發送的數據寫在某個buffer或log文件中﹐由應用程序來完成網絡通訊
回复 点赞
zdhzidy 2006年08月01日
应该可以用kernel_sendmsg(),kernel_recvmsg(),正在试验中。。。。。。。。。。
回复 点赞
slone 2006年08月01日
sock_sendmsg sock_recvmsg 是没有用户空间的啦, 不过使用之前要写几行代码
回复 点赞
zdhzidy 2006年08月01日
jammyxu
网卡驱动层次太低,那个时候还没有tcp/ip的概念,回到用户层发送数据是一个办法,不过实现起来软件层次过多,当发送数据量太大的时候效率可能是问题。

直接用sys_socket是不行,这个函数使用的缓冲区需要是一个用户层的空间,直接传一个内核空间给他应该要出问题。

顶起来大家继续研究。谢了先。
回复 点赞
zdhzidy 2006年07月29日
继续研究中,肯定是可以访问网络的,只是还没有找到方法:)
回复 点赞
slone 2006年07月28日
也不是不行啊,跨过Clib 来,直接用内核函数调用,sys_socket() 来创建内核的socket 接口,仔细看看 net/socket.c 没准是可以的啦
回复 点赞
zdhzidy 2006年07月28日
道理是这样-0- 不过通过什么发??socket??在内核中socket可以用吗??这些问题不是确实不是很清楚
回复 点赞
bekars 2006年07月28日
什么意思,写个发包程序,发过去
回复 点赞
zdhzidy 2006年07月28日
自己顶一下:)
回复 点赞
发动态
发帖子
Linux_Kernel
创建于2007-08-27

3140

社区成员

1.7w+

社区内容

Linux/Unix社区 内核源代码研究区
社区公告
暂无公告