多次尝试后无法打开文件

时间:2012-11-30 20:22:00

标签: c# pcap.net

我在我的应用程序中使用PcapDotNet DLL,我遇到了一个问题:

我的应用程序获取一个PCap文件(Wireshark文件)并将数据包发送到网卡。如果我多次发送文件或文件(通常约500次),我的应用程序崩溃时出现错误打开文件C:\ file.pcap 失败。我试图在项目论坛上询问,但开发人员不是永久性的,所以也许其他人可以帮助我。

错误原因在 inputCommunicator 中,当发生错误时,此对象值为null。请注意,这只在几百次迭代(大约500次)后才会发生。

代码:

    using (PacketCommunicator inputCommunicator = selectedInputDevice.Open(65536, PacketDeviceOpenAttributes.Promiscuous, 1000))
    {
        using (mOutputCommunicator = selectedOutputDevice.Open(100, PacketDeviceOpenAttributes.Promiscuous, 1000))
        {                
            while (inputCommunicator.ReceivePacket(out packet) == PacketCommunicatorReceiveResult.Ok && _isStop) //fill the buffer with the packets from the file
            {
                using (PacketSendBuffer mSendBuffer = new PacketSendBuffer((uint)packet.Length * 4))
                {                                                                                       
                    else if (packet != null)
                    {
                        lastTime = packet.Timestamp;
                        mSendBuffer.Enqueue(packet); //put the packet in the buffer
                    }

                    mOutputCommunicator.Transmit(mSendBuffer, _isBurst); //send the packet
                    _numberOfSendPackets++;
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

这是WinPcap中的一个错误。 有关详细信息,请参阅http://www.winpcap.org/pipermail/winpcap-bugs/2012-December/001547.html