#include #include #include #include #include #include #include #include #include #define SOCK_PATH "tpf_unix_sock.server" int main(void) { int server_sock, rc; socklen_t len; int bytes_rec = 0; struct sockaddr_un server_sockaddr, peer_sock; char buf[256]; memset(&server_sockaddr, 0, sizeof(struct sockaddr_un)); memset(buf, 0, 256); server_sock = socket(AF_UNIX, SOCK_DGRAM, 0); if (server_sock == -1) { perror("socket"); exit(1); } server_sockaddr.sun_family = AF_UNIX; strcpy(server_sockaddr.sun_path, SOCK_PATH); len = sizeof(server_sockaddr); unlink(SOCK_PATH); rc = bind(server_sock, (struct sockaddr *)&server_sockaddr, len); if (rc == -1) { perror("bind"); close(server_sock); exit(1); } printf("waiting to recvfrom...\n"); bytes_rec = recvfrom(server_sock, buf, 256, 0, (struct sockaddr *)&peer_sock, &len); if (bytes_rec == -1) { perror("recv"); close(server_sock); exit(1); } else { printf("DATA RECEIVED = %s\n", buf); } close(server_sock); return 0; }