套接字程序,用于演示网络中的链路层通信,而无需使用IP地址

时间:2011-09-07 18:14:01

标签: c sockets networking

众所周知,在网络中,通信是通过MAC地址而不是通过IP地址进行的。所以我总是认为我们是否可以在服务器 - 客户端范例中编写一个套接字程序,它只使用MAC地址进行通信但不使用ip地址,即结构sock_in应该没有填充,并且在局域网内它们应该能够进行通信

1 个答案:

答案 0 :(得分:4)

上面的示例(由Carl提供)的原始套接字可以帮助您访问L3标头。但请注意,在更新的Windows(XP SP3,Vista和7)上,套接字层极大地限制了原始套接字,因此很难发送您选择的任意数据。

您还可以使用特殊库,以便对以太网适配器进行更多原始访问。 WinPcap(适用于Windows)或libpcap(适用于Linux)将允许您操作整个数据包数据,包括以太网标头,并确实发送您希望的任何其他L2协议。