diff options
Diffstat (limited to 'socket/client.c')
-rw-r--r-- | socket/client.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/socket/client.c b/socket/client.c new file mode 100644 index 000000000..a132a7a9e --- /dev/null +++ b/socket/client.c @@ -0,0 +1,43 @@ +#include <assert.h> +#include <stdio.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> + +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/un.h> + + +#define SOCKET_PATH "/tmp/nix-daemon" + + +int main(int argc, char * * argv) +{ + int res; + + int sock = socket(PF_UNIX, SOCK_STREAM, 0); + assert(sock != -1); + + struct sockaddr_un addr; + addr.sun_family = AF_UNIX; + strcpy(addr.sun_path, SOCKET_PATH); + + res = connect(sock, (struct sockaddr *) &addr, sizeof(addr)); + assert(res != -1); + + int i; + for (i = 0; i < 100000; i++) { + int len = send(sock, &i, sizeof(i), 0); + assert(len == sizeof(i)); + + int j; + len = recv(sock, &j, sizeof(j), 0); + if (len < sizeof(j)) break; + assert(i * 2 == j); + } + + close(sock); + + return 0; +} |