0
使用設備我試圖做出會收到多個網絡設備的數據包,並送他們上的其他設備(像軟件中心)的程序。我正在使用C#和pcapdotnet。這個簡單的方法捕獲設備通信:C#pcapdotnet ReceivePackets回調
public void sniff(LivePacketDevice device)
{
using(PacketCommunicator comm = device.Open(65536, PacketDeviceOpenAttributes.Promiscuous, 1000))
{
comm.ReceivePackets(0, printandsend);
}
}
在回調方法「printandsend」我想每個設備上發送數據包,除非數據包是從哪裏來的設備。爲防止將數據包發送到設備,我需要知道從哪個設備發送數據包。問題是,我不知道如何解析當前使用的設備到該回調方法。方法之外的變量對我來說不是一個解決方案,因爲捕獲數據包可以同時在多個設備上使用。通過創建「嗅探」方法的線程在同一時間捕獲設備。
有一個可能的解決方法使用方法receivePacket:
Packet packet;
While(true)
{
comm.ReceivePacket(out packet);
send(packet,device)
//this would send packet on every device except the one which is used as a parameter
}
問題是,我不知道,如果這個解決方法可以提供所有的數據包將被成功地接收和發送。