使用嵌入式 FPGA 中的 MAC 地址与套接字进行通信

标签 c sockets embedded protocols fpga

我有一个小型 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/

相关文章:

C# 如何手动清除 TCP 套接字缓冲区?

python - 通过代理IP将python应用程序连接到互联网?

embedded - 如何锁定stm32f4中的GPIO引脚配置?

c - socket编程中如何正确拒绝客户端连接?

c - 提交解决方案后Codechef网站中出现段错误

客户端和服务器端的 Java 套接字问题

linux - 多核处理器中基于轮询和中断的数据包处理方法

c - RFID RC522读卡接线Pi

c - 指针:关于指针的查询

c - 运行时在内核级别处理信息