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

Posted 天逸笛仙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.

以上是关于WinpCap 使用线程发数,明明发了,返回值0是OK的啊,怎么抓包看不到,难道不支持多线程。。。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用线程去执行一个 有返回值的方法,并获取返回值?

多线程执行,为啥明明已经加了synchronized了,还是出现每次结果都不一样呢?

注册表键值明明存在OpenSubKey始终返回null,解决方案

捕获的包,怎么都是乱码啊,我用winPcap作的嗅探器,读出来的包都是乱码,怎么回事啊? 难道要加入新的线程

matlab 读了一个二维数组,明明看到里面的值除了127就是0,为啥用imshow显示后只有黑白两色

从C ++ 11中的线程返回一个值[重复]