WINAPI: CreateFile в сетевой адаптер для чтения необработанных байтов - PullRequest
1 голос
/ 11 октября 2010

Можно ли прочитать сетевой адаптер, похожий на последовательный порт?Я знаю, что последовательные порты могут быть прочитаны с помощью функции CreateFile WINAPI.Есть ли аналогичный способ чтения необработанных байтов с сетевого адаптера?

Я знаю о WiFi / Network Function s, но примеры WiFi довольно редки.

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Вы можете передать флаг SOCK_RAW, когда создаете сокет, используя WSASocket () (или socket () , по вашему усмотрению).Более подробно это описано в Необработанные сокеты TCP / IP в MSDN.

С этой страницы -

Как только приложение создает сокет типа SOCK_RAW, этот сокет может использоваться для отправки и получения данных.Все пакеты, отправленные или полученные в сокете типа SOCK_RAW, обрабатываются как дейтаграммы в неподключенном сокете.

Следует отметить, что корпорация Майкрософт покалечила реализацию своих необработанных сокетов после Windows XP SP2;подробности описаны на странице MSDN в разделе Limitations on Raw Sockets:

  • Данные TCP не могут быть отправлены через необработанные сокеты.
  • дейтаграммы UDP с недопустимым адресом источника не могут бытьотправлено через сырые розетки.
  • Вызов функции bind с необработанным сокетом недопустим.

Если эти ограничения слишком ограничительны, вы можете вернуться к ранее рекомендованной библиотеке winpcap.

1 голос
/ 11 октября 2010

Если вы хотите захватывать необработанные пакеты, вам необходим драйвер поддержки, например WinPCAP , чтобы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...