深度剖析WinPcap之(九)——数据包的发送过程(3)

本文介绍如何使用pcap_sendqueue_transmit函数以非同步方式发送大量数据包,并通过实际代码进行演示。这种方式比同步方式更快,发送100个数据包仅需990微秒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转自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-59-6 所示。
9-5 Wireshark所接收的数据包(起始的数据包)
9-6  Wireshark所接收的数据包(结束的数据包)
从图9-5与图9-6所示,可见发送100个数据包花费了990微秒时间,比同步方式快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值