1

SharpPcap を使用し、SharpPcap の例を使用して、pcap ファイル (libpcap) からパケットを送信しようとしています: http://sourceforge.net/p/sharppcap/code/ci/SharpPcap_4_1_0/tree/Examples/Example10.SendQueue/Example10.SendQueues. cs

私の問題は127行目です。int sent = winPcapDevice.SendQueue(squeue, SharpPcap.WinPcap.SendQueueTransmitModes.Synchronized);このコマンドを実行しようとすると、オブジェクト参照がオブジェクトのインスタンスに設定されていないという例外が発生します。 私はデバッガーで行ごとにチェックしましたが、このコマンドまですべてが正常に機能しているようです。PcapファイルはOKです。すべてのパケットがQueue

4

1 に答える 1

1

デバッガーで winPcapDevice の値を確認します。null の場合、これが問題です。それ以外の場合は、スタック トレースを投稿してください。 の内部から例外がスローされる可能性がありSendQueueます。

winPcapDevice が null と表示される理由を調べるには、この変数 (device変数、次にdevices配列) で終了すると予想されるインスタンスの寿命をデバッガーで追跡します。コードをステップ実行しながら、それらの内部にあるものを調べます。

devicenull ではなく、次のコード行を実行している場合:

var winPcapDevice = device as WinPcapDevice;

winPcapDevicenull になるということは、保持しているインスタンスを型deviceにキャストできないことを意味しますWinPcapDevice。基本的に、これも継承しない別のタイプです。'as ' 演算子の仕組みについては、この msdn の記事WinPcapDeviceを参照してください。

于 2013-04-16T05:38:44.093 に答える