/********************************* Autor: Agustín J. González http://www.elo.utfsm.cl/~agv **********************************/ #include #include #include #include #include int main(int argc, char * argv[]) { int n, s, len; char buf[1024]; struct hostent *hp; struct sockaddr_in name; printf("USO: %s \n", argv[0]); /* busca consulta la direccion IP del la maquina a partir de su nombre. */ hp = gethostbyname(argv[1]); /* Crea un socket: punto de contacto entre aplicacion y capa transporte. */ s = socket(AF_INET, SOCK_STREAM, 0); /* LLena la estructura que informa a capa TCP sobre servidor a contactar */ name.sin_family = AF_INET; name.sin_port = htons(atoi(argv[2])); memcpy(&name.sin_addr, hp->h_addr_list[0], hp->h_length); /* EL cliente llama y se conecta con el servidor. */ len = sizeof(struct sockaddr_in); connect(s, (struct sockaddr *) &name, len); /* Ahora que el socket esta conectado, lee datos desde consola y los envia al servidor. Termina con Control-D (Fin de archivo) */ while ((n = read(STDIN_FILENO, buf, sizeof(buf))) > 0) send(s, buf, n, 0); close(s); exit(0); }