windows – 使用Winsock的原始以太网帧

我正在将一个通信库从Linux移植到Windows.我知道我的方法在很大程度上是什么.该库使用所有原始以太网级别帧进行所有通信.

我移植的库使用PF_PACKET族和struct sockaddr_ll.浏览MSDN winsock站点后,我还没有找到一个等效的系列/结构.我的方法应该在这里?

我有一些想法,但我不确定它们是不是好主意
我可以使用PF_UNSPEC,未指定.
我可以传递PF_PACKET表示的数字(这是一个无符号的短)
我也可以在Windows中创建自己的sockadddr_ll结构.

这些想法对我来说都不好看,它们看起来就像是不太可能有效的黑客.

如果有人有任何建议,我将不胜感激.

最佳答案
我假设您指的是Raw Sockets(您必须编写网络层,传输层和应用程序层信息).新的Windows版本(XP SP2及更高版本)对具有许多限制的原始套接字的支持非常有限.

More info(向下滚动到“原始套接字限制”)

我相信,解决方案是使用WinPcap,它允许您在这些系统上使用send raw packets.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...