アプリケーションで PcapDotNet DLL を使用していますが、次のような問題が発生しています。
私のアプリケーションは PCap ファイル (Wireshark ファイル) を受け取り、パケットをネットワーク カードに送信します。1 つまたは複数のファイルを何度も (通常は 500 回まで) 送信すると、アプリケーションがFailed opening file 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++;
}
}
}
}