接收整个UDP数据包

时间:2010-08-15 06:10:07

标签: c++ windows sockets packet

我正在用C ++编写一个用于Windows的UDP代理应用程序,它使用Winsock发送和接收UDP数据包。问题是我需要使用ENTIRE数据包,而不仅仅是数据和UDP和/或IP头。我尝试过使用IP_HDRINCL的原始套接字(可能拼写错误),但它仍然会从数据包中删除一些信息。是否存在某种类型的库或其他东西,如果在winsock中不可能的话,那将让我实现这个目标吗?

2 个答案:

答案 0 :(得分:3)

对于接收数据包,WinPCAP将允许您完成所有这些以及更多,并且示例代码here显示如何捕获到达接口的所有数据包。

答案 1 :(得分:0)

以下是在Windows中过滤数据包的一些内容:

  1. WinDivert免费的开源项目工作在Windows 7,2008或 上。网络层。
  2. WinpkFilter 3.0商业版,Windows XP版和上层版。数据链接 图层
  3. pcausa,商业。数据链接层
  4. Windows Filtering Platform Packet Modification Sample一个样本 要创建WinDivert使用的标注驱动程序,您现在应该这样做 实现内核驱动。网络层。