您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> 初学winpcap遇到的问题,运行错误!

初学winpcap遇到的问题,运行错误!

来源:网络整理     时间:2016/8/8 22:31:18     关键词:

关于网友提出的“ 初学winpcap遇到的问题,运行错误!”问题疑问,本网通过在网上对“ 初学winpcap遇到的问题,运行错误!”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 初学winpcap遇到的问题,运行错误!
描述:

照书打了个捕获数据包的小程序,一运行就出现那个经典的错误提示框:
Test3.exe 遇到问题需要关闭,我们对此引起的不便表示抱歉。
如果您正处在进程当中,信息有可能丢失。
关于此错误的其他信息, 请单击此处。
照书打的程序应该没问题,还打了一个用回调函数pcap_loop()的也是这样。
不知道怎么办了,请教。
==============代码如下====================
#include "pcap.h"
#pragma comment(lib,"wpcap.lib")
void main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int inum;
int i = 0;
pcap_t *adhandle;
int res;
char errbuf[PCAP_ERRBUF_SIZE]; //错误信息缓存区
struct tm *ltime;
char timestr[16];
struct pcap_pkthdr *header;
u_char *pkt_data;
//取得网络设备列表
if(pcap_findalldevs(&alldevs, errbuf) == -1)
{
fprintf(stderr, "Error in pcap_findalldevs:%s\n", errbuf);
exit(1);
}
//显示网络设备列表
for(d = alldevs; d; d = d->next)
{
printf("%d.%s\n", ++i, d->name);
if(d->description)
printf("(%s)\n", d->description);
else
printf("(No description available)\n");
}
if(i == 0)
{
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return;
}
printf("Enter the interface number (1 - %d):", i);
scanf("%d", &inum);
if(inum < 1 || inum > i)
{
printf("\nInterface number out of range.\n");
pcap_freealldevs(alldevs);//释放列表
return;
}
//跳转到已选择的网络适配器
for(d = alldevs, i = 0; i < inum - 1; d = d->next, i++)
{
//打开网络接口
if((adhandle = pcap_open_live(d->name, //网络设备名
65536, //数据包的捕获部分长度
1, //混合模式
1000, //读超时值
errbuf //错误信息缓存区
)) == NULL)
{
fprintf(stderr, "\nUnable to open the adapter. %s is not supported by WinPcap\n");
pcap_freealldevs(alldevs);
return;
}
}
printf("\nListening on %s...\n", d->description);
pcap_freealldevs(alldevs);
//开始捕获数据包
while((res = pcap_read_ex(adhandle, &header, &pkt_data)) >= 0)//难道有指针错误?
{
if(res == 0)//超时
continue;
ltime = localtime(&header->ts.tv_sec);
strftime(timestr, sizeof timestr, "%H:%M:%S", ltime);
printf("%s,%.6d len:%d\n", timestr, header->ts.tv_usec, header->len);
if(res == -1)
{
printf("Error reading the packet:%s\n", pcap_geterr(adhandle));
return;
}
}
getchar();
return;
}


解决方案1:

????????????什么错误啊??


以上介绍了“ 初学winpcap遇到的问题,运行错误!”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3153114.html

相关图片

相关文章