本文转自http://eslxf.blog.51cto.com/918801/213824
1.5 使用发送队列发送数据包的示例(非同步方式)
我们采用实际代码演示如何通过pcap_sendqueue_transmit函数以非同步方式发送大量数据包。只需要在[send_queue工程]的
send_queue
函数中作如下修改即可:
void
send_queue(pcap_t *fp,unsigned int npacks,unsigned int dus)
{
…
//if ((res = pcap_sendqueue_transmit(fp, squeue, 1))
< squeue->len)//
同步发送
if ((res = pcap_sendqueue_transmit(fp, squeue, 0))
< squeue->len)//
非同步发送
…
}
用
Wireshark
接收示例程序所发送的数据包如图
9-5
与
9-6
所示。

图9-5 Wireshark所接收的数据包(起始的数据包)

图9-6 Wireshark所接收的数据包(结束的数据包)
从图9-5与图9-6所示,可见发送100个数据包花费了990微秒时间,比同步方式快。