rendered paste body#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <netdb.h>#include <errno.h>#define ip "127.0.0.1"#define port 21int sock, rec; struct sockaddr_in mySocket;char buffer[1024];int preRead(int fd, int timeout){ fd_set rfds; struct timeval tv; int retval; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = timeout; tv.tv_usec = 0; retval = select(fd+1, &rfds, NULL, NULL, &tv); if(retval == -1){ return -1; }else if(retval){ return 0; }else{ return -1; }}int preSend(int fd, int timeout){ fd_set rfds; struct timeval tv; int retval; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = timeout; tv.tv_usec = 0; retval = select(fd+1, NULL, &rfds, NULL, &tv); if(retval == -1){ return -1; }else if(retval){ return 0; }else{ return -1; }}void printError() { printf("Error: %s\n", strerror(errno)); exit(0);}int main(int argc, char* argv[]) { mySocket.sin_family = AF_INET; mySocket.sin_port = htons(port); mySocket.sin_addr.s_addr = inet_addr(ip); sock=socket (AF_INET, SOCK_STREAM, 0); if (sock == -1) { printf("Couldn't create a socket!\n"); printError(); } if (connect(sock,( struct sockaddr *)&mySocket,sizeof(mySocket)) == -1) { printf("Couldn't connect to remote host!\n"); printError(); } while(preRead(sock, 1) == 0) { rec=recv(sock,buffer,sizeof(buffer),0); buffer[rec]='\0'; printf("Bytes received: %d\n", rec); printf("%s",buffer); } char* msg = "QUIT"; int sendStuff = 0; while(preSend(sock, 1) == 0 && sendStuff == 0) { rec=send(sock, msg, strlen(msg), 0); printf("Bytes send: %d\n", rec); sendStuff = 1; } while(preRead(sock, 1) == 0) { rec=recv(sock,buffer,sizeof(buffer),0); buffer[rec]='\0'; printf("Bytes received: %d\n", rec); printf("%s",buffer); } close(sock); return 0;}