lib SharpPCap を使用してパケットをキャプチャし、それらを分析して、PacketArrivalEventHandler 関数で flv ビデオ アドレスを見つけます。クラスの主要部分は次のようになります。
class addrdetector
{
private LivePCapDevice device;
private device_OnPacketArrival(object sender, CaptureEventArgs e)
{
/* some analysis and some output */
if (match)
{
device.StopCapture();
device.Close();
}
}
public Analyse()
{
var devices = LivePcapDeviceList.Instance;
device = devices[2];
device.OnPacketArrival +=
new PacketArrivalEventHandler(device_OnPacketArrival);
device.Open();
device.StartCapture();
}
}
プログラムに addrdector の 2 つのインスタンスがある場合、最初のインスタンスには正しい出力がありますが、2 番目のインスタンスには出力がありません。2番目はパケットをキャプチャできないようです。
同じメイン関数で LivePCapDevice の 2 つのインスタンスをテストしましたが、正しく動作します。また、2 つの EXE.s で動作することもできます。しかし、プログラムで競合する理由がわかりません...ありがとう〜