我正在用C++编程Windows的UDP代理应用程序,它使用Winsock发送和接收UDP数据包。问题是我需要使用ENTIRE数据包,而不仅仅是数据和UDP和/或IP标头。我尝试了使用IP_HDRINCL的原始套接字(可能拼写错误),但它仍然从数据包中剔除一些信息。有没有某种图书馆或某些东西,如果不可能在winsock中,那会让我完成这个任务吗?接收整个UDP数据包
回答
我已经看到,WinPCAP可以让你发送完全像你想要的数据包,但是你可以用类似于winsock的方式接收数据包,使用bind()和一切?我想用WinPCAP你必须收到所有的数据包到您的计算机上的任何端口。 – Chroma 2010-08-15 06:16:34
不一定 - 查看上面示例代码链接的第二个示例,其中显示了如何设置过滤器,它将允许您只接收您感兴趣的数据包。不,不,您不需要需要使用bind()等;你只是得到原始数据包数据。 – 2010-08-15 06:18:16
我对这个计算领域并不了解,但是不会接收你的计算机获得的每一个数据包,只是过滤它比仅仅接收为你准备的数据包慢得多? – Chroma 2010-08-15 06:24:49
下面是一些在Windows过滤包:
- WinDivert免费的Windows 7,2008年或 上的开源项目工作。网络层。
- WinpkFilter 3.0商业,Windows XP和上。数据链接 层
- pcausa,商业。数据链路层
- Windows Filtering Platform Packet Modification Sample样例 创建WinDivert使用的标注驱动程序,您现在应该到 实现内核驱动程序。网络层。
- 1. 收到不完整的UDP数据包
- 2. 仅接收一个数据包的UDP接收器代码
- 3. UDP接收数据
- 4. Android从不接收UDP数据包
- 5. UDP数据包不被接收
- 6. 接收udp广播数据包ios
- 7. 快速接收UDP数据包
- 8. 在UDP中接收数据包 - Java
- 9. 在Android上接收UDP数据包
- 10. 如何连续接收UDP数据包
- 11. 接收UDP数据包的问题
- 12. 无法接收udp数据包
- 13. 无法接收UDP数据包
- 14. iphone问题接收UDP数据包
- 15. bash接收udp数据包tcpdump
- 16. Python:从端口接收UDP数据包
- 17. epoll可以接收udp数据包吗?
- 18. 在android中接收UDP数据包
- 19. 如何在Java中接收多个UDP数据报数据包?
- 20. 用python接收UDP数据包,造成数据包丢失
- 21. 无法接收NAT数据包后面的UDP数据包
- 22. c#UDP检查我是否收到整个数据包?
- 23. .NET UDP数据接收
- 24. 接收整个UDP数据报,不管大小如何?
- 25. 转到:如何接收整个UDP数据报
- 26. Java如何处理多个UDP数据包接收?
- 27. Java UDP发送 - 逐个接收数据包
- 28. 更新UI时接收多个UDP数据包
- 29. UDP套接字无法接收数据
- 30. udp套接字停止接收数据
也许你可以解释你需要的其他信息,而不是你提供的API提供的。 – 2010-08-15 06:15:16
对于winsock,通常它只是将数据传递给你,并且有些结构中的头信息。使用原始套接字时,如果内存服务,它将取下以太网报头。我只想要绝对简单,完整,完整的数据包,根本不需要修改。 – Chroma 2010-08-15 06:19:12