三滴雨的博客

博主太懒

FreeBSD10.1 pcap_next_ex补包延时问题。


示例代码如下:


// 打开设备 true promiscuous  false no promiscuous
pcap_t *device = pcap_open_live(conf.dev, 65535, 1, 0, errbuf);
if(!device)
{
be_printf("%s is failed line = %d\n", __FUNCTION__, __LINE__);
return -1;

}


// 设置pcap_loop, pcap_next_ex等捕获函数为非阻塞模式, 默认为 0 阻塞模式
// FreeBsd 如果不设置该选项,则抓包函数存在延时
    pcap_setnonblock(device, 1, errbuf);                                                                                                                  
int bl = pcap_getnonblock(device, errbuf);
printf("bl = %d\n", bl);


/* 开始捕获 */
while((res = pcap_next_ex(hpcap, &header, &pkt_data)) >= 0)

{

// 处理函数

}

如果不设置pcap_setnonblock(...) 信息, pcap_next_ex, pcap_loop等函数,会延时获取到数据包。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014752451/article/details/52371892
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

FreeBSD10.1 pcap_next_ex补包延时问题。

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭