我被要求制作一个使用套接字发送帧的JAVA应用程序,我的问题很简单,这个“框架”有什么特别之处吗?我的意思是,我知道如何通过网络传输字节,我有关于套接字的知识,但我真的不知道这些帧是什么,我应该假设通过说“帧”它们只是指字节的特定结构发送?
他们指定“框架”必须具有以下结构:
所以将它传递给hex是
所以如果我正确的话,发送的帧(我将转换为更晚的字节)是:
45 8A FE 31 31 30 38 32 35 30 38 30 30 30 30 30 30 30 30 30 30 31 31 36 30 30 30 30 3031 32 33 34 35 30 30 30 30 30 30 30 30 30 30
我的问题是我对此是正确的,还是我错过了什么?也许我完全错了? :■ 提前致谢
PD:抱歉,如果这是一个愚蠢的问题:/答案 0 :(得分:4)
Java套接字API在第7层工作。您可以发送UDP数据包或TCP / IP流,但不能使用标准Java.net包发送或接收以太网帧。
换句话说,您可以发送和接收PAYLOADS,但是您无法读取或写入HEADERS(例如TCP数据包或以太网帧头)。
至少没有编写自己的JNI代码,或使用第三方库“原始套接字”。例如:https://www.savarese.com/software/rocksaw/
答案 1 :(得分:1)
我真的不知道这个帧是什么,我应该假设
没有。你应该询问谁给你这个要求。没有人想猜猜游戏。
编辑:但是,我将添加两个观察结果。首先,任何曾要求您在整个职业生涯中直接写出以太网帧的机会都非常小。其次,这不是以太网帧格式,就像谷歌会告诉你的那样。