packet interface 사용하기

joyjoj의 이미지

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);
}
}

이런 식으로 예제가 나와 있는데요.
1. 사용하는 패킷을 드라이버에 매칭시키는 값을 임의로 설정해도 되는지
2. do_appletalk함수에서 송,수신을 위해 소켓과 어떻게 연결을 해야 하는지요?

혹시 serial로 직접 내보내는 프로그램 예제 같은 것을 구할수 없을까요?

baram4x의 이미지