免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1805 | 回复: 1
打印 上一主题 下一主题

关于直接写网卡(发数据包) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-17 13:18 |只看该作者 |倒序浏览
写了一个读Cap包,发包的小程序。
只是想说明其中的一个小环节,所以没有把代码贴出来。只是描述了一下。
在发包的时候,发送N个包之后(N会根据cap包里面的packet大小而不同),总是出现"no buffer space avaliable"的错误。应该是说网卡的缓冲区满了。
我是这样发的:
      一个Cap包里面可能会有N个packet,我建了一个链表,把这些packet连起来。

      while(1){
             if(指针不为NULL){
                      发送对应的packet;
             }
             把指针再次指向头;
       }

也就是说在发送每个Packet之间是没有时间间隔的。呵呵。只有读指针所花费的时间。
我用setsockopt把socket的缓冲区设大,也不起太多的效果。
有什么好办法吗?还是就只能这样,网卡本身的处理速度根本就不可能快过这种发送速度??
希望了解的XDJM们给支个招。

论坛徽章:
0
2 [报告]
发表于 2005-10-18 13:06 |只看该作者

关于直接写网卡(发数据包)

有人知道怎么样实时检测网卡缓冲区的大小吗??
帖子都快沉到底了,自己顶一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP