Как я могу использовать объект «коммуникатор», созданный в main(), в функции обратного вызова? Класс PacketCommunicator не имеет конструктора.
class Program
{
//public static PacketCommunicator communicator = new PacketCommunicator(); - can't do this; PacketCommunicator constructor doesn't exist
//public static PacketCommunicator communicator = null; - this gives "Object reference not set to an instance of an object"
public static void Main(string[] args)
{
PacketCommunicator communicator = selectedDevice.Open(...)
communicator.ReceivePackets(0, PacketHandler);
}
// Callback function invoked by ReceivePackets for every incoming packet
private static void PacketHandler(Packet packet)
{
communicator.SendPacket(packet);
}
}
Я использую библиотеку Pcap.Net. По сути, я пытаюсь перехватывать пакеты на одном интерфейсе, выполнять для них NAT и отправлять их на другой интерфейс.