#include #include #include #include int main (int argc, char *argv[]) { const struct sockaddr_un sa = { AF_UNIX, "\0huhu2" }; int socket_recv = -1, socket_send = -1; struct pollfd pfd[1]; int ret; socket_recv = socket (AF_UNIX, SOCK_SEQPACKET, 0); if (socket_recv < 0) perror ("socket #1"); ret = bind (socket_recv, (struct sockaddr *) &sa, sizeof (sa)); if (ret < 0) perror ("bind"); ret = listen (socket_recv, 1); if (ret < 0) perror ("listen"); socket_send = socket (AF_UNIX, SOCK_SEQPACKET, 0); if (socket_send < 0) perror ("socket #2"); ret = connect (socket_send, (struct sockaddr *) &sa, sizeof (sa)); if (ret < 0) perror ("connect"); send (socket_send, "text", 5, 0); pfd[0].fd = socket_recv; pfd[0].events = POLLIN; ret = poll (pfd, 1, 1000); if (ret > 0 && pfd[0].revents & POLLIN) { char data[6]; recv (socket_recv, data, 5, 0); data[5] = '\0'; fprintf (stderr, "return: %s\n", data); } if (ret < 0) perror ("poll"); return 0; }