1

Winsock for C++ 是否有任何可行的替代方案?我需要的原因是因为 Winsock 的原始套接字行为不正常(不,这是不可修复的,不要浪费您的时间询问)并且 WinPCAP 只能监控网络流量,而不是实际接收数据包。我需要可以接收完整数据包的东西,包括任何 IP、UDP、TCP 标头等。这样的东西是否存在,如果不存在,为什么不存在?

4

2 回答 2

6

WinPCAP 只能监控网络流量,不能实际接收数据包

监控网络流量相当于接收数据包。这正是 Wireshark 之类的工具所做的:读取您的网卡并重建数据包边界。

我需要可以接收完整数据包的东西,包括任何 IP、UDP、TCP 标头等。

这很可能使用 Winsock API。查看该WSAIoctl功能,特别是SIO_RCVALL选项 - 启用此选项会将接口上收到的所有数据包传送到您的套接字。这些都是以 IP 标头开头的原始 IP 数据包。

于 2010-08-16T02:30:28.173 回答
1

你可以看看Boost.Asio。C++ 跨平台 IO 库。支持 UDP、TCP 和 ICMP。

于 2010-08-16T02:15:50.013 回答