Pcapdot

Тема в разделе ".NET", создана пользователем vladimir7485, 20 дек 2012.

  1. vladimir7485

    vladimir7485 Гость

    Доброго времени суток.
    Использую библиотеку PCapDot.Net, конечная цель написать сниффер.
    Для начала решил запустить пример из библиотеке под Windows Forms.
    Вообщем, создал проект, внес нужный код:

    namespace WinPCap
    {
    public partial class Form1 : Form
    {
    IList<LivePacketDevice> allDevices;
    PacketDevice device;
    PacketCommunicator communicator;

    public Form1()
    {
    InitializeComponent();

    // Retrieve the device list from the local machine
    allDevices = LivePacketDevice.AllLocalMachine;

    if (allDevices.Count == 0)
    this.comboBox1.Text = "Устройств не обнаружено";
    else
    {
    for (int i = 0; i != allDevices.Count; ++i)
    {
    comboBox1.Items.Add((i + 1).ToString() + " " + allDevices.Description);
    }
    }
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
    textBox1.Text = comboBox1.SelectedIndex.ToString();
    device = allDevices[comboBox1.SelectedIndex];
    }

    private void button1_Click(object sender, EventArgs e)
    {
    using (communicator = device.Open(65536, PacketDeviceOpenAttributes.Promiscuous, 1000))
    {

    // start the capture
    communicator.ReceivePackets(0, PacketHandler);

    }
    }

    public void PacketHandler(Packet packet)
    {
    richTextBox1.Text = "Time: " + packet.Timestamp.ToString() + "; Length: " + packet.Length.ToString() + "\n";
    }
    }
    }

    Консольное приложение работает, а у меня почему то после нажатия кнопки, т.е. после communicator.ReceivePackets(0, PacketHandler);
    программа виснет...
    Что не так то??? Ведь все скопировал.
    Единственное функция PacketHandler в консоле описана так
    private static void PacketHandler(Packet packet)
    В чем может быть косяк.
    PS: может тут элементарное решение, но сам давно в NET не прогал, а проект горит, долго ковыряться не могу, поэтому прошу не злиться за эдакие вопросы...

    Добавлено: Прошу прощения, случайно создался второй пост, была какая то ошибка просто. Прошу удалить. Спасибо.
     

Поделиться этой страницей