#include #include #include #include #include #include #include #define HOSTNAME "localhost" #define PORT "1235" int main(int argc, char** argv) { int status, sock, bytes_sent; struct addrinfo hints, *servinfo; char msg[] = "hello!!"; memset(&hints, 0, sizeof hints); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; //Not correct usage, print help and exit. if (argc != 3) { printf("Usage : %s HOSTNAME PORT\n", argv[0]); return -1; } //get info about remote host. if ((status = getaddrinfo(argv[1], argv[2], &hints, &servinfo)) != 0) { printf("Error during getaddrinfo() : %s\n", gai_strerror(status)); return -1; } //Initialize socket. if ((sock = socket(servinfo->ai_family, servinfo->ai_socktype, servinfo->ai_protocol)) == -1) { printf(" Error during socket() : %s\n", strerror(errno)); freeaddrinfo(servinfo); //free servinfo allocated space and exit. return -1; } //connect to remote host. if (connect(sock, servinfo->ai_addr, servinfo->ai_addrlen) == -1 ) { printf("Error during connect() : %s\n", strerror(errno)); freeaddrinfo(servinfo); close(sock); //Also close the socket. return -1; } if ( (bytes_sent = send(sock, msg, strlen(msg), 0)) == -1 ) { printf("Error during send() : %s\n", strerror(errno)); freeaddrinfo(servinfo); close(sock); return -1; } printf("Sent %d bytes.\n", bytes_sent); freeaddrinfo(servinfo); close(sock); return 0; }