/* librairie standard ... */ /* déclaration des types de base */ #include /* constantes relatives aux domaines, types et protocoles */ #include /* constantes et structures propres au domaine INTERNET */ #include /* structures retournées par les fonctions de gestion de la base de données du réseau */ #include /* pour les entrées/sorties */ #include /* la lib standard */ #include /* pour le fork */ #include /* pour memcpy */ #include int main (int argc, char * argv[]) { if (argc != 3) { printf("ERREUR : Usage : ./client AdresseServeur N°Port\n"); exit(2); } int sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == -1) { printf("ERREUR lors de la création du socket\n"); exit(1); } // On cree l'adresse du socket target struct sockaddr_in addr_target; addr_target.sin_family = AF_INET; addr_target.sin_port = atoi(argv[2]); struct hostent * hoststruct = gethostbyname(argv[1]); if (hoststruct == NULL){ printf("ERREUR lors de la recherche de l'adresse IP du target\n"); exit(1); } memcpy((char *)&(addr_target.sin_addr.s_addr), hoststruct->h_addr, hoststruct->h_length); int retour_connexion; //On fait de demande de connextion au socket target retour_connexion = connect(sock, (struct sockaddr *)&addr_target, sizeof(struct sockaddr_in)); if (retour_connexion == -1){ printf("ERREUR lors de la demande de connexion\n"); exit(1); } //On envoie les messages /*for (cmpt_message_envoye = 1; cmpt_message_envoye <= nb_message; cmpt_message_envoye++){ // On construit le message à envoyer construire_message(message_envoie,(96 + (cmpt_message_envoye % 26)), longueur_message, cmpt_message_envoye); //On envoie les messages nb_carac_envoye = send(sock, message_envoie, longueur_message, 0); if (nb_carac_envoye == -1){ printf("ERREUR lors de l'envoi du message numéro %d\n", cmpt_message_envoye); exit(1); } else{ printf("CLIENT EMMETEUR : Envoi n°%d (%d) [", cmpt_message_envoye, nb_carac_envoye); afficher_message(message_envoie, longueur_message); printf("]\n"); } }*/ close(sock); return 0; }