Wireshark Pcap 转换器应用程序:不再有控制台输出

Wireshark Pcap converter app : no more console output

我正在制作一个简单的 Qt 应用程序,它从 CSV 文件中读取内容并从中生成 PCAP 数据文件以供其他软件读取。

一旦我调用 pcap_open_dead、pcap_dump_open 或 pcap_dump,我的小型转换器 运行 就不再有控制台输出。甚至在 main 开头出现的 Hello World 也不再出现。从下面的代码中,如果我简单地注释掉这三个方法,控制台输出和 "Hello World" 回来。

新手,对pcap一窍不通,求助。

#include <QCoreApplication>
#include <iostream>
#include "pcap.h"
using namespace std;

struct pcapWriter_S
{
    bool isAvailable;
    int m_OutPcapIpId;
    pcap_t* m_OutPcapHandle;
    pcap_dumper_t* m_OutPcapFile;
}m_pcapWriter;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    cout << "Hello World!" << endl;

    //m_pcapWriter.m_OutPcapHandle = pcap_open_dead(DLT_EN10MB,65535);
    //m_pcapWriter.m_OutPcapFile = pcap_dump_open(m_pcapWriter.m_OutPcapHandle, QString("tmp_csv_out.pcap").toAscii().data());
    m_pcapWriter.m_OutPcapIpId = 1;

    if (m_pcapWriter.m_OutPcapFile != 0)
    {
        m_pcapWriter.isAvailable = true;
    }

    QByteArray pkt_data;
    // Omitted code to generate pkt data from input file

    m_pcapWriter.m_OutPcapIpId++;

    //pcap_dump((unsigned char*)m_pcapWriter.m_OutPcapFile, &header, (unsigned char*)pkt_data.data());

    return a.exec();
}

不知何故,这是由于我打电话给 pcap_open 而不是 pcap_close。在控制台之间东西丢失了 - 不能发誓它被写在 pcap 东西上但它无论如何都会阻塞控制台。