1
2
如果您是指原始以太网广播,则不能从纯Java实现。 (顺便问一下,你的问题是否与此重复: How can I read or get the information of the beacon frame that sent by the Access point in WLAN, by java or Android? ) 对于原始套接字,一种直接的方法(如果您知道将在什么平台上执行)是直接使用本机代码执行,并使用与Java系统其他部分的适当接口。 一个更复杂的选项是将本机代码包装在java.net.Socket的子类中,这为代码的其余部分提供了一个标准接口,但这可能很棘手,具体取决于您希望实现多少Socket接口,以及您可以在多大程度上依赖于用于寻址的约定以及调用代码是否正确。 第三种选择是将现有库用于原始以太网,请参见例如。 答案 有关打开原始套接字的特权的简要讨论。, send/receiving raw ethernet frames 使现代化 :有关以太网(编程)的更多详细信息请参阅评论中的问题。 首先,维基百科关于以太网框架的文章很好地介绍了该协议: http://en.wikipedia.org/wiki/Ethernet_frame . 关于编程,枯燥的答案是阅读SOCK_RAW,从套接字(2)的手册页开始。创建一个原始套接字后,基本上创建一个帧(作为字节数组),并使用write(2)或sendto(2)发送它,使用read(1)或recvfrom(2)进行读取。在创建以太网帧时,请使用维基百科文章来获取正确的格式。 对于Python编程,我得到的“原始以太网Python”的前3个谷歌结果是 这似乎是一个合理的起点。 对于更全面的文章, http://www.binarytides.com/python-packet-sniffer-code-linux/ 也许值得一读。 |
Shane · Java-创建“BroadCaster” 9 年前 |