Winsock替代方案(不,不是WinPCAP)

时间:2010-08-16 01:58:49

标签: c++ winsock packets

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

2 个答案:

答案 0 :(得分:6)

  

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

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

  

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

使用Winsock API非常有可能。查看WSAIoctl函数,特别是SIO_RCVALL选项 - 启用此选项会将接口上收到的所有数据包传递到套接字。这些是从IP头开始的原始IP数据包。

答案 1 :(得分:1)

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