6

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

我要移植的库使用了 PF_PACKET 系列和 struct sockaddr_ll。浏览 MSDN winsock 站点后,我没有找到等效的族/结构。我的方法应该是什么?

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

这些想法对我来说似乎都不好,它们只是看起来不太可能奏效的黑客。

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

4

1 回答 1

3

我假设您指的是原始套接字(您必须在其中编写网络层、传输层和应用程序层信息)。新的 Windows 版本(XP SP2 和更高版本)对原始套接字的支持非常有限,并且有很多限制。

更多信息(向下滚动到“原始套接字的限制”)

我相信解决方案是使用WinPcap,它允许您在这些系统上发送原始数据包。

于 2009-04-20T05:26:19.403 回答