/* uxread.c */ /* Read a datagram through a unix socket. */ #define begin { #define end } #include #include #include #include #include char buf[100]; struct sockaddr name; struct sockaddr sname; main(argc, argv) int argc; char *argv[]; begin int i; unsigned char c; int namelen; int sock; int netaddr; int status; sock = socket(PF_UNIX, SOCK_DGRAM, 0); if (sock < 0) begin printf("Socket create failed \n"); exit(1); end printf("Socket id = %d \n", sock); name.sa_family = AF_UNIX; memcpy(name.sa_data, "/tmp/abcde", 10); status = bind(sock, (struct sockaddr *)&name, sizeof(name)); printf("Bind status = %d \n", status); if (status < 0) exit(1); for (i = 0; i < 3; i++) { status = recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr *)&sname, &namelen); read(sock, buf, sizeof(buf)); printf("status = %d \n", status); printf("Msg = %s \n", buf); } unlink(name.sa_data); end