我有一个小型 FPGA,需要通过以太网与 Ubuntu 机器上运行的 C 程序进行通信。 FPGA太小,无法使用TCP等。我可以发送帧并仅使用以太网端口的MAC地址在wireshark中拾取它们,但为了与C通信,我需要使用RAW套接字,但是在创建套接字时,它需要一个协议(protocol)值,是否有任何协议(protocol)允许我仅使用 MAC 地址进行通信。
框架具有以下结构
Destination MAC address
Source MAC address
Protocol - 0x55aa
Data
最佳答案
如果您使用 PF_PACKET
而不是 PF_INET
,那么您的 0x55aa
值就是您的协议(protocol)号:
#include <sys/socket.h>
#include <netpacket/packet.h>
packet_socket = socket(PF_PACKET, SOCK_RAW, ntohs(0x55aa));
关于使用嵌入式 FPGA 中的 MAC 地址与套接字进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314674/