Pcapdot

  • Автор темы vladimir7485
  • Дата начала
V

vladimir7485

#1
Доброго времени суток.
Использую библиотеку 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 не прогал, а проект горит, долго ковыряться не могу, поэтому прошу не злиться за эдакие вопросы...

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