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