1
我正在製作一個應該接收數據包的程序,並根據MAC地址將它發送到PC上的其他端口(其他端口正在執行相同操作,併發送他所獲得的數據)。但是,當我打開裝置是這樣的:C#開關 - 帶winpcap的無限循環
device_port1.Open(DeviceMode.Promiscuous);
,然後發送一些數據包在一個端口上,就像是收到了相同的端口獲得相同的數據包。當兩個適配器都做同樣的事情時,他們一遍又一遍地發送對方一個數據包。
我怎麼能阻止呢?我試過
device_port1.Open(OpenFlags.NoCaptureLocal, 1000);
但它沒有通過該程序發送任何東西(然後它沒用)。
這是代碼:
device_port0 = devices[pole[0]];
device_port0.OnPacketArrival += new SharpPcap.PacketArrivalEventHandler(device_OnPacketArrival_port0);
//device_port0.Open(OpenFlags.NoCaptureLocal, 1000);
device_port0.Open(DeviceMode.Promiscuous);
device_port0.StartCapture();
而且onPacketArrival
private void device_OnPacketArrival_port0(object sender, CaptureEventArgs packet)
{
device_port1 = devices[pole[1]];
device_port1.Open();
try
{
device_port1.SendPacket(packet.Packet.Data);
}
catch (Exception ee)
{
Console.Writeline("Exception: " + ee.Message);
}
}
而且在PORT1是一樣的。它只是發送他得到的東西,這就是循環的原因。
你正在使用哪個命名空間? – Paedow
我們需要額外的代碼才能爲您提供幫助。一行代碼是不夠的。 –
我試圖編輯,希望現在更好:) – Tunerx