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

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

我有一些想法,但是我不确定它们是否是好主意,我可以使用pf_unspec来指定。我只能传递pf_packet代表的数字(这是一个未签名的简短),我也可以在Windows中制作自己的sockadddr_ll struct。

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

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

有帮助吗?

解决方案

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

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

我相信解决方案是使用 WinPCap, ,这使您可以 发送原始数据包 在这些系统上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top