wincap数据包发送1

本文详细介绍了如何利用wpcap.dll库进行数据包的发送,包括其导出的函数接口以及如何实现单个数据包的发送示例。
摘要由CSDN通过智能技术生成
NPF 允许把原始数据包发送到网络上,而且针对不同的应用提供了下列四种发送方式:
n         应用软件每次发送一个数据包一次;
n         应用软件每次发送一个数据包大于一次,次数预先设定;
n         应用软件每次发送一个数据包队列,并根据时间戳发送各数据包;
n         应用软件每次发送一个数据包队列,不根据时间戳,而是尽所能得快速发送各数据包;
数据包被发送到网络时, NPF 并不对数据包作任何协议封装,因此应用程序必须构建每个数据包的不同协议头。一般情况下应用程序不需要生成 FCS ,它通常由网络适配器硬件计算,并在发送到网络前自动添加到每个数据包的尾部。
9-1 函数调用关系图

1.1      wpcap.dll导出的相应函数接口

wpcap.dll 为了完成数据包发送的任务,提供了下列函数:
int pcap_sendpacket(pcap_t *p,u_char *    buf,int size);
函数发送单个原始数据包一次
pcap_send_queue* pcap_sendqueue_alloc(u_int memsize);
函数分配一个发送队列
void pcap_sendqueue_destroy(pcap_send_queue *queue);
函数销毁一个发送队列,释放与队列相关的所有内存资源
int pcap_sendqueue_queue(pcap_send_queue *queue,const struct pcap_pkthdr *pkt_header, const u_char *pkt_data);
函数把一个数据包添加到 queue 参数所指发送队列的尾部
u_int pcap_sendqueue_transmit(pcap_t *p,pcap_send_queue *queue,int sync)
函数发送一个原始数据包队列到网络

1.2      发送单个数据包的示例

我们采用实际代码演示如何通过 pcap_sendpacket 函数发送单个数据包。示例代码如下: [send工程]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值