📄 transport.h
字号:
/* * This piece of code is totally free. If any pitfalls found, * please feel free to contact me at jetmotor@21cn.com * THANKS A LOT! */#ifndef TRANSPORT_H_#define TRANSPORT_H_#include <net/if.h>typedef struct{ int fd; int ifindex; unsigned char mac[6];} TRANSPORT;typedef int (ETH_FRM_FILTER)(const TRANSPORT* tp, const unsigned char* src, const unsigned char* dst, unsigned short type); /* return 1 if succ otherwise 0 */extern const unsigned char BROADCAST_MAC[6];int get_macaddr(const char* dev_name, int* ifindex, unsigned char mac_addr[]);int eth_create(TRANSPORT* tp, int ifindex, const unsigned char src_mac[]);int eth_build_header(TRANSPORT* tp, const unsigned char* dst_mac /* 0 indicates broadcast */, unsigned short type, unsigned char* buf);int eth_send(TRANSPORT* tp, const unsigned char* dst_mac, unsigned char* buf, unsigned short len);int eth_recv(TRANSPORT* tp, ETH_FRM_FILTER* filter, unsigned char* data, /* the output data contains the mac header */ unsigned short len /* length of mac header and payload */);int eth_filter(const TRANSPORT* tp, const unsigned char* src, const unsigned char* dst, unsigned short type);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -