C++ 使用pcap开发便携式网络分析仪应用程序
在使用vc++2008开发网络分析器应用程序时,我遇到了可移植性问题 我正在开发一个使用winpcap分析数据包的应用程序。然而,最近我被要求我的应用程序也应该在solaris和linux上运行。。我想问的是,我正在使用诸如PacketOpenAdapter之类的winpcap函数来嗅探适配器。。我是否必须从头重写所有捕获代码,使其在windows以外的操作系统上工作?我应该只使用pcap.h来使我的应用程序可移植吗?我需要使用libpcap吗?简言之,我应该怎么做才能使它便于携带 thx提前 我想问的是,我正在使用诸如PacketOpenAdapter之类的winpcap函数来嗅探适配器。。我是否必须从头重写所有捕获代码,使其在windows以外的操作系统上工作 您只需要使用C++ 使用pcap开发便携式网络分析仪应用程序,c++,winpcap,portable-applications,C++,Winpcap,Portable Applications,在使用vc++2008开发网络分析器应用程序时,我遇到了可移植性问题 我正在开发一个使用winpcap分析数据包的应用程序。然而,最近我被要求我的应用程序也应该在solaris和linux上运行。。我想问的是,我正在使用诸如PacketOpenAdapter之类的winpcap函数来嗅探适配器。。我是否必须从头重写所有捕获代码,使其在windows以外的操作系统上工作?我应该只使用pcap.h来使我的应用程序可移植吗?我需要使用libpcap吗?简言之,我应该怎么做才能使它便于携带 thx提前
wpcap.dll
中的函数;您不得使用任何packet.dll
函数,除非您不需要使用它们,并且如果不使用它们,程序仍能工作,在这种情况下,只能在Windows上使用它们
此外,不要使用仅在Windows上可用的wpcap.dll
函数,例如pcap_open()
;仅使用pcap\u open\u live()
打开要捕获的设备,并仅使用pcap\u open\u offline()
打开保存的捕获文件
我应该只使用pcap.h来使我的应用程序可移植吗
对
我需要使用libpcap吗
在UN*X(Solaris、Linux、OS X、*BSD、HP-UX、AIX等)上使用libpcap,在Windows上使用WinPcap(它是移植到Windows的libpcap),并且只使用在UN*X上使用的libpcap版本和在Windows上使用的WinPcap版本中可用的函数
然后确保您使用的所有其他功能都可以在UN*X和Windows之间移植,或者,如果您必须使用特定于平台的功能,请确保仅在该平台上使用适用于特定平台的功能。使用跨平台库(如libpcap)是一个良好的开端。thx。。因此,如果我使用我想要的libpcap,那么相同的代码不会在知名的操作系统上工作吗?当我在另一个问题的答案中读到“libpcap/WinPcap是一个跨平台库,最初是为BSD UN*X创建的”时,我感到困惑。。这是真的吗?那么为什么Packet32.c包含了?