#include #include #include #include #include #include #include #include #include #define MAXSTRSIZE 256 int main (int argc, char **argv){ char client_msg[MAXSTRSIZE] = ""; char srv_msg[MAXSTRSIZE] = ""; int srv_msg_len = MAXSTRSIZE; int sock; struct sockaddr_in sin; int ret_val; short port = atoi(argv[2]); /** Allocate a socket (type SOCK_STREAM for TCP) **/ sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == -1) { perror("socket"); exit(1); } /** Fill in '' **/ bzero( (char *) &sin, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = inet_addr(argv[1]); sin.sin_port = htons(port); /** connect **/ ret_val = connect(sock, (struct sockaddr *) &sin, sizeof(sin)); if (ret_val == -1) { perror("connect"); exit(1); } /** START **/ fgets(client_msg, 256, stdin); ret_val = send(sock, client_msg, strlen(client_msg), 0); if (ret_val < strlen(client_msg)) { perror("send"); close(sock); exit(1); } while ((ret_val = recv(sock, srv_msg, MAXSTRSIZE, 0)) > 0) { srv_msg[ret_val] = '\0'; printf("%s", srv_msg); } /** END **/ /** close the socket and clean up **/ close(sock); return 0; }