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

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

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

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

0

Решение

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

Вам нужно использовать только функции, которые находятся в wpcap.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, либо, если вы иметь чтобы использовать специфичные для платформы функции, убедитесь, что вы используете те, которые подходят для конкретной платформы только на этой платформе.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]