TCP/IP를 사용하지 않고 패킷을 전달하려고 하는데요.
Linux kernel internal을 참조하니 packet interface를 사용하면 된다고 하는군요.
#include <sys/socket.h>
#define ETHERNET_P_APPLETALK 0x809B
#define MAX_PACKET_SIZE 1024
extern void do_appletalk(unsigned char *, int);
main()
{ int fd, len;
unsigned char buf[MAX_PACKET_SIZE];
fd = socket(AF_INET, SOCK_PACKET, ETHERNET_P_APPLETALK);
if (fd < 0) exit(1);
for(;;){
if((len = read(fd, buf, MAX_PACKET_SIZE)) < 0) exit(2);
do_appletalk(buf, len);
}
}