问候各位程序员,
这将是一个很长的问题,所以请耐心等待。
我在大学做一个项目,我的部分主要集中在笔记本电脑之间通过无线局域网的通信。我使用的语言是 Java。这种通信不应要求任何笔记本电脑直接连接另一台笔记本电脑。因此,假设我在一台计算机上创建了一个访问点,其他人不应直接连接到它并获取 IP 地址,然后只需通过 IP 套接字进行连接。
因此,剩下的选择是通过 MAC 地址进行连接。到目前为止,我想到的是通过 wlan 适配器中继,例如,我的 MAC 地址、IP 地址。从我以前的网络课程中,我想到将这些信息发送到 MAC 地址的广播通道,以便任何打开 wlan 的笔记本电脑都能得到它。然后,如果我将这些信息保存在数据库中,每当我需要时,我可以从数据库中提取 MAC 地址和 IP 地址,将我想要发送的信息中继到特定的 MAC 地址而不是广播地址(因此只有特定的 MAC 地址可以得到它并且覆盖区域内的其他机器无法得到它)。
我认为,这种在计算机之间进行通信的方式将被证明是非常有用的,我们根本不需要任何套接字编程。顺便说一句,在程序中,安全性不是问题,因此 MAC 地址、IP 地址等的直接中继不被视为问题。在过去的两周里,我对这个概念进行了很多研究,但我一点也不成功。到目前为止,我所读到的是,Java 无法在网络中的第 3 层以下工作。但是,到目前为止,有一些外部库可以帮助 Java 与第 2 层一起工作,但我无法以某种方式使它们在我的计算机中工作。我的老师建议我创建自己的小协议,但到目前为止我不知道如何命令 wlan 适配器发送广播消息。
我的问题是,
(1)实际上有没有一种方法可以命令 wlan 适配器将特定消息发送到 Java 中的特定 MAC 地址,例如 ARP。
(2) 是否有任何有用的 Java 库可以帮助解决这些问题?例如,创建自定义 ARP 数据包(包含我想在其中发送的信息)或类似的东西,这可能会给我在第 2 层网络中的优势。