【发布时间】:2016-08-01 21:56:29
【问题描述】:
我有一个由wireshark捕获的pcap文件,现在我需要读取它的每个数据包并将它们写入结构向量。我在将数据包写入结构时遇到了一些问题。 结构:
struct pktStruct {
struct pcap_pkthdr * pkt_header; // header object
const u_char * pkt_data; // data object
long time; // used to compare with each other
};
我如何将每个数据包保存到结构的代码:
string resultFile = "/home/xing/Desktop/tmp.pcap";
char errbuff[PCAP_ERRBUF_SIZE];
pcap_t * resultPcap = pcap_open_offline(resultFile.c_str(), errbuff);
struct pcap_pkthdr * header; // header object
const u_char * data; // data object
vector<pktStruct> pktVector; // this vector contains each pktStruct
pktStruct myStruct;
while (int i=pcap_next_ex(resultPcap,&header,&data) >=0) {
myStruct.pkt_header = header;
myStruct.pkt_data = data;
myStruct.time = header->ts.tv_sec * 1000000 + header->ts.tv_usec;
pktVector.push_back(myStruct);
}
当我打印每个数据包的信息时,我发现每个存储数据包的结构都是完全一样的。我是否将相同的数据包保存到向量的每个结构中?
【问题讨论】: