我想从 Linux 中的套接字接收以太网数据包,但仅限那些具有两个自定义 Ethtype 值之一的数据包。 据我所知,如果只应接收 1 个 ethtype,则可以在像这样创建套接字时指定此值
int socket = socket(PF_PACKET, SOCK_RAW, htons(ETHERTYPE_CUSTOM_1);
但是如果我有 2 种不同的 ethtypes 怎么办?我应该使用 2 个套接字还是编写一些自定义过滤器?或者有什么简单的方法吗?
最佳答案
创建两个套接字,每个套接字对应一种以太网类型。然后您可以使用 select()
或 epoll()
同时在任一套接字上等待数据包。
关于c - 在 Linux 中使用 C 中的几种 Ethtypes 接收以太网数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41680799/