разработка приложения портативного сетевого анализатора с использованием pcap

0

У меня проблемы с переносимостью при разработке приложения сетевого анализатора с использованием vc++ 2008.

Я разрабатываю приложение, которое анализирует пакеты с помощью winpcap. Тем не менее, в последнее время мне требовалось, чтобы мое приложение также запускалось на Solaris и linux.. что я хочу спросить, что я использую функции winpcap, такие как PacketOpenAdapter, чтобы обнюхать адаптер. Нужно ли мне переписывать весь код захвата от начала, чтобы он работал на операционных системах, отличных от окон? должен ли я использовать pcap.h для переноса моего приложения? мне нужно использовать libpcap? Короче говоря, что я должен сделать, чтобы сделать его переносным?

спасибо заранее.

  • 0
    Использование кроссплатформенной библиотеки (например, libpcap) - хорошее начало.
  • 0
    спасибо ... так что, если я использую libpcap, я хочу, не будет ли тот же код работать в известных операционных системах? Я запутался, когда прочитал в ответе на другой вопрос, что «libpcap / WinPcap - это кроссплатформенная библиотека, изначально созданная для BSD UN * X» .. это правда? тогда почему Packet32.c имеет #include <winsock.h>?
Теги:
portable-applications
winpcap

1 ответ

1
Лучший ответ

что я хочу спросить, что я использую функции winpcap, такие как PacketOpenAdapter, чтобы обнюхать адаптер. Должен ли я переписать весь код захвата с самого начала, чтобы он работал на операционных системах, отличных от окон?

Вам нужно использовать только функции, которые находятся в wpcap.dll; вы не должны использовать какие- packet.dll функции packet.dll, если вам не нужно их использовать, и программа будет работать, если вы их не используете, и в этом случае используйте их только в Windows.

Кроме того, не используйте функции wpcap.dll, доступные только в Windows, такие как pcap_open(); используйте только pcap_open_live() чтобы открыть устройство для захвата и использования только pcap_open_offline() чтобы открыть сохраненные файлы захвата.

должен ли я использовать pcap.h для переноса моего приложения?

Да.

мне нужно использовать libpcap?

Используйте libpcap для UN * X (Solaris, Linux, OS X, * BSD, HP-UX, AIX и т.д.), Используйте WinPcap (который является libpcap, перенесенный в Windows) в Windows, и используйте только функции, доступные в версиях libpcap, который вы будете использовать на UN * X и в версии WinPcap, которую вы используете в Windows.

Затем убедитесь, что все остальное, что вы используете, переносимо между UN * X и Windows или, если вам нужно использовать определенные для платформы функции, убедитесь, что вы используете те, которые подходят для конкретной платформы только на этой платформе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню