当前位置: 技术问答>linux和unix
libpcap库函数pcap_dispatch()中的参数cnt意义?
来源: 互联网 发布时间:2016-08-18
本文导语: 最近在学习libpcap库函数,并进行编程学习。 pcap_dispatch()是libpcap库中的一个主要函数,原型如下: int pcap_dispatch(pcap_t *p, int cnt,pcap_handler callback, u_char *user) 函数功能:捕获并处理数据包。 参数说明:cnt参...
最近在学习libpcap库函数,并进行编程学习。
pcap_dispatch()是libpcap库中的一个主要函数,原型如下:
int pcap_dispatch(pcap_t *p, int cnt,pcap_handler callback, u_char *user)
函数功能:捕获并处理数据包。
参数说明:cnt参数指定函数返回前所处理数据包的最大值。cnt=-1表示在一个缓冲区中处理所有的数据包。cnt=0表示处理所有数据包。
看了函数说明如上,但对cnt这一个参数仍存在困惑:cnt=-1时,“缓冲区”这一概念具体指的什么?cnt=0时表示处理所有的数据包,就是说在一个循环中,它会不断的捕获并处理数据包吗?
希望有懂的大大能给我讲解下,谢谢了。
pcap_dispatch()是libpcap库中的一个主要函数,原型如下:
int pcap_dispatch(pcap_t *p, int cnt,pcap_handler callback, u_char *user)
函数功能:捕获并处理数据包。
参数说明:cnt参数指定函数返回前所处理数据包的最大值。cnt=-1表示在一个缓冲区中处理所有的数据包。cnt=0表示处理所有数据包。
看了函数说明如上,但对cnt这一个参数仍存在困惑:cnt=-1时,“缓冲区”这一概念具体指的什么?cnt=0时表示处理所有的数据包,就是说在一个循环中,它会不断的捕获并处理数据包吗?
希望有懂的大大能给我讲解下,谢谢了。
|
呵呵,你给的分少了点啊。。。
“缓冲区”这一概念具体指的什么?
由于libpcap是从网卡驱动去获取数据包的拷贝,自然这些包就会被存放在缓冲区了。。。
”就是说在一个循环中,它会不断的捕获并处理数据包吗“
的确是这样,它会把缓冲区的包交给回调函数callback
“缓冲区”这一概念具体指的什么?
由于libpcap是从网卡驱动去获取数据包的拷贝,自然这些包就会被存放在缓冲区了。。。
”就是说在一个循环中,它会不断的捕获并处理数据包吗“
的确是这样,它会把缓冲区的包交给回调函数callback
|
给你举个例子,cnt=0就是处理一箱子的瓶装的饮料,cnt=-1,就是处理那一瓶饮料
不知道这么说你能理解不
不知道这么说你能理解不