2

我有一个小型 FPGA,需要通过以太网与在 Ubuntu 机器上运行的 C 程序进行通信。FPGA 太小,无法使用 TCP 等。我可以发送帧并仅使用以太网端口的 MAC 地址在 Wireshark 中接收它们,但要与 CI 通信需要使用 RAW 套接字,但是在创建套接字时它需要一个协议值,是否有任何协议允许我仅使用 MAC 地址进行通信。

框架具有以下结构

Destination MAC address
Source MAC address
Protocol - 0x55aa
Data 
4

1 回答 1

4

如果您使用PF_PACKET而不是,PF_INET那么您的0x55aa值就是您的协议号:

#include <sys/socket.h>
#include <netpacket/packet.h>

packet_socket = socket(PF_PACKET, SOCK_RAW, ntohs(0x55aa));
于 2012-07-03T15:54:30.513 回答