#include #include #include #include #include #include int main(int argc, char **argv) { if (argc < 3) { std::cout << "Usage: " << argv[0] << " \n"; return 1; } const char *host = argv[1]; int port = std::atoi(argv[2]); int sock = socket(AF_INET, SOCK_STREAM, 0); if (sock < 0) { perror("socket"); return 1; } struct sockaddr_in addr; std::memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); if (inet_pton(AF_INET, host, &addr.sin_addr) <= 0) { perror("inet_pton"); close(sock); return 1; } if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("connect"); close(sock); return 1; } std::cout << "Connected to " << host << ":" << port << std::endl; char buf[1024]; while (true) { ssize_t n = recv(sock, buf, sizeof(buf)-1, 0); if (n > 0) { buf[n] = '\0'; std::cout << buf; std::cout.flush(); } else if (n == 0) { std::cout << "Server closed connection\n"; break; } else { perror("recv"); break; } } close(sock); return 0; }