2011-07-13 327 views
1

我想知道如何使用仅使用MAC地址的C程序(不使用IP地址)在两个系统之间进行通信。我认为这是原始的以太网通信。我的要求是仅通过使用MAC地址将数据从客户端发送到服务器。可以通过创建我们自己的原始以太网帧来完成。两个系统之间仅使用MAC地址进行通信

请帮我解决这个问题。如果有人用C编写代码,请分享。

此链接可以帮助你,http://aschauf.landshut.org/fh/linux/udp_vs_raw/ch01s03.html

+0

什么操作系统?你能建立一个链接本地IP地址吗? – bdonlan

+0

您还必须确保客户端和服务器在同一子网上(即两者之间没有路由器)。如果他们在同一个中心你应该没问题。 – MSumulong

+0

我正在使用Linux syetm(Ubuntu)。是的,我可以使用IP地址在两个系统之间进行通信,并且两者都位于同一网络中。至少我应该能够在系统内进行通信,我的意思是通过在一个终端运行客户端程序并在另一个终端运行服务器程序,我应该在服务器终端接收数据。这个链接可以帮助你,http://aschauf.landshut.org/fh/linux/udp_vs_raw/ch01s03.html – purpose

回答

0

Here是C#的例子,也许你可以利用这一点。对微控制器进行编程时,正确的代码取决于操作系统,甚至取决于使用的芯片。

3

libpcap库允许您组装原始以太网数据包并将它们直接发送到适配器:最难的部分是发现正确的适配器。这是为大多数平台上的C/C++使用而设计的(Win PCAP等)。

请确定这是你想要的:虽然我已经看到了几个项目,其中原始的以太网数据包接口已被使用,只有越来越多的协议才能用于重新传输和窗口等,直到最终用你自己的TCP/IP版本(只有一个没有经过数百万使用Windows/Linux或任何你的平台的人测试过)。现在大多数以太网芯片都具有加速TCP/IP协议栈的功能:所以你也会错过这些。

+2

如果一切都失败了,你真的需要这个,你可以用它来交换一个更有用的标识符IP地址或主机名称)。 –

相关问题