/********************************* Autor: Agustín J. González http://www.elo.utfsm.cl/~agv **********************************/ #include #include #include #include int main(int argc, char * argv[]) { char buf[256]; int s, n, len; struct sockaddr_in name; printf("USO: %s \n", argv[0]); /* Crea un socket: punto de contacto entre aplicación y capa transporte. */ s = socket(AF_INET, SOCK_DGRAM, 0); /* Prepara estructura de datos para asociar el socket a un puerto. */ name.sin_family = AF_INET; name.sin_port = htons(atoi(argv[1])); name.sin_addr.s_addr = htonl(INADDR_ANY); /* en cualquier IP local.*/ /* Liga el socket al puerto deseado. */ len = sizeof(struct sockaddr_in); bind(s, (struct sockaddr *) &name, len); /* Lee desde el socket y escribe en pantalla hasta * llegada de datagrama con datos de largo cero. */ while ((n = recv(s, buf, sizeof(buf), 0)) > 0) write(STDOUT_FILENO, buf, n); close(s); exit(0); }