#include #include #include #include #include #include #define SOCK_PATH "/home/threads_loger" #define BUF_LEN 256 int main() { int s, t, len; struct sockaddr_un remote; char buffer[BUF_LEN]; if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { perror("socket"); exit(1); } std::cout << "Connecting...\n"; remote.sun_family = AF_UNIX; strcpy(remote.sun_path, SOCK_PATH); len = strlen(remote.sun_path) + sizeof(remote.sun_family); if (connect(s, (struct sockaddr *) &remote, len) == -1) { perror("connect"); exit(1); } std::cout << "Connected" << std::endl; while (1) { fgets(buffer, BUF_LEN, stdin); if (send(s, buffer, BUF_LEN, 0) == -1) { perror("send"); exit(1); } // memset(buffer, 0, buf_len); while (1) { t = recv(s, buffer, BUF_LEN, MSG_WAITALL); if (t < 0) perror("recv"); else if (t == 0) { printf("Server closed connection\n"); exit(1); } printf("%s\n", buffer); if(buffer[BUF_LEN - 1]) break; } } // close(s); return 0; }