#include <stdio.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
#include <string.h>

#define USIZE (sizeof(struct sockaddr_un))
#define DSIZE 16
#define MAXCONN 3

int main(int argc, char *argv[]) {
	struct sockaddr_un srv;
	int i, fd, rlen;
	char dgram[DSIZE];

	memset(&srv, 0, USIZE);

	fd = socket(AF_UNIX, SOCK_DGRAM, 0); 

	strncpy(srv.sun_path, argv[1], sizeof(srv.sun_path)-1);
	srv.sun_family = AF_UNIX;

	remove(argv[1]);
	bind(fd, (struct sockaddr *) &srv, USIZE);
	listen(fd, MAXCONN);

	rlen = recv(fd, dgram, DSIZE, 0);
	for(i=0; i<rlen; i++) printf("%02x ", dgram[i]);
	putchar('\n');

	remove(argv[1]);
	return 0;
}

