#include #include #include #include #include #include #include #include // pegadata // peganome int main(int argc, char *argv[]) { char *host; int sockfd; int len, result; struct sockaddr_in address; struct hostent *hostinfo; struct servent *servinfo; char buffer[128]; if( argc == 1) host = "localhost"; else host = argv[1]; hostinfo = gethostbyname(host); if(!hostinfo) { printf("erro no gethostbyname()"); exit(1); } servinfo = getservbyname("daytime", "tcp"); if (!servinfo) { printf(" problema no getservbyname()!" ); exit(1); } printf("A porta do serviço daytime é: %d\n", ntohs(servinfo->s_port) ); // criar socket if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0) ) < 0 ) // cria um novo socket { printf(" Houve erro na ebertura do socket "); exit(1); } // criar endereço address.sin_family = AF_INET; address.sin_port = servinfo->s_port; address.sin_addr = *(struct in_addr *)*hostinfo->h_addr_list; len = sizeof(address); result = connect(sockfd, (struct sockaddr *) &address, len); if( result == -1) { perror(" Erro na abertura da conexão "); exit(1); } result = read(sockfd, buffer, sizeof(buffer) ); printf( " Foi lido %d bytes: %s\n", result, buffer); close(sockfd); exit(0); }