WinpCap 使用线程发数,明明发了,返回值0是OK的啊,怎么抓包看不到,难道不支持多线程。。。...

if (!m_adapterHandle)
{
    return false;
}
int rst = pcap_sendpacket((pcap_t*)m_adapterHandle,data ,dataLen);
if(rst != 0)
{
    return true;
}
return false;


看我标黑的就知道了吧,datalen如果为0,发不出去

而且data如果内容全为’\0’,那么也会被屏蔽掉

 

这一点官方文档并没有确切的描述,请注意(当然,正常情况下你的报文应该有protocol headers,那么必然是可以发出去的。)

附API说明:

int pcap_sendpacket
(
pcap_t *
p,

u_char *
buf,

int
size

)

Send a raw packet.

This function allows to send a raw packet to the network. p is the interface that will be used to send the packet, buf contains the data of the packet to send (including the various protocol headers), size is the dimension of the buffer pointed by buf, i.e. the size of the packet to send. The MAC CRC doesn't need to be included, because it is transparently calculated and added by the network interface driver. The return value is 0 if the packet is succesfully sent, -1 otherwise.

转载于:https://www.cnblogs.com/fluteary/p/5579578.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值