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微秒时间,比同步方式快。

本文出自 “千江月” 博客,请务必保留此出处http://eslxf.blog.51cto.com/918801/213824