/* Unix domain socket: client. */ #include #include #include #include #include #include #include #include "nya/common.h" #define SOCKET_PATH "./sock.unix" int main( int argc, char* argv[] ) { int c_fd; struct sockaddr_un caddr ; socklen_t c_len = sizeof(struct sockaddr_un); struct inf_t data; char *path; if( argc > 1 ) path = argv[0]; else path = SOCKET_PATH; /* Create UDS. */ massert((c_fd = socket( AF_UNIX, SOCK_STREAM, 0)) < 0 , "socket: " ); memset( &caddr, 0, sizeof(caddr)); caddr.sun_family = AF_UNIX; snprintf( caddr.sun_path, 108 , path); massert( connect( c_fd, (struct sockaddr*)&caddr, c_len) < 0, "connect: "); massert( recv( c_fd, &data, sizeof(struct inf_t), 0) < 0, "recv: "); print_inf(&data); close(c_fd); return 0; }