78 lines
2.2 KiB
C
78 lines
2.2 KiB
C
/* librairie standard ... */
|
|
/* déclaration des types de base */
|
|
#include <sys/types.h>
|
|
/* constantes relatives aux domaines, types et protocoles */
|
|
#include <sys/socket.h>
|
|
/* constantes et structures propres au domaine INTERNET */
|
|
#include <netinet/in.h>
|
|
/* structures retournées par les fonctions de gestion de la base de
|
|
données du réseau */
|
|
#include <netdb.h>
|
|
/* pour les entrées/sorties */
|
|
#include <stdio.h>
|
|
/* la lib standard */
|
|
#include <stdlib.h>
|
|
/* pour le fork */
|
|
#include <unistd.h>
|
|
/* pour memcpy */
|
|
#include <string.h>
|
|
|
|
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;
|
|
}
|
|
|
|
|
|
|