Gre*_*age 4 windows cross-platform winpcap libpcap qnx-neutrino
我正在尝试做跨平台开发,Windows 7主机,QNX Neutrino目标.在尝试使跨平台开发工作之前,我想测试并使用主机上的代码,但Windows上不支持Pcap.
Pcap和WinPcap之间的语法/函数调用有多相似?我可以接受我为WinPcap编写的代码并让它适用于Pcap和不同的机器吗?
小智 5
(大概你的意思是"libpcap和WinPcap";"pcap"指的是"libpcap和WinPcap"或它们都使用的文件格式.)
WinPcap是一个libpcap到Windows的端口,并共享很多libpcap的代码.它包括:
因此,libpcap和WinPcap中的绝大多数调用都是相同的,并且在libpcap和WinPcap之间共享尽可能多的代码,例如libpcap-on-FreeBSD和libpcap-on-Linux.
API差异是:
pcap_open()并且没有远程捕获支持(将来会有用于远程捕获支持的通用API,因此可以编写代码以在Windows和各种UN*Xes上进行远程捕获);pcap_setbuff(),但是如果您使用pcap_create()和pcap_activate()打开实时捕获,则更新的版本允许您设置捕获缓冲区大小,并且这些例程也在较新版本的WinPcap中;select()/ poll()vs. WaitForMultipleObjects()),而且需要等待处理的API也是必需的,不同;pcap_fopen_offline(),可能永远不会,因为不同版本的MSVC支持库彼此不是二进制兼容的).因此,对于几乎所有目的,只要您处理平台之间的其他差异,就应该可以编写适用于各种UN*Xes(以及显然,QNX Neutrino)和Windows的基于pcap的代码.
| 归档时间: |
|
| 查看次数: |
1927 次 |
| 最近记录: |