Change variable names and comments
This commit is contained in:
parent
6ede2943a4
commit
276475b87d
2 changed files with 23 additions and 24 deletions
25
src/client.c
25
src/client.c
|
@ -14,11 +14,10 @@
|
|||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int socket_fd; // socket id = file descriptor
|
||||
int n; // pour récupérer les retours de read() et write()
|
||||
int fin; // pour sortir de la boucle de lecture quond on recoit EOT
|
||||
struct hostent *host;
|
||||
int sockid;
|
||||
struct sockaddr_in client_socket;
|
||||
struct hostent *host;
|
||||
int n, fin;
|
||||
char buf[BUF_LEN];
|
||||
|
||||
/* Gestion des signaux */
|
||||
|
@ -47,7 +46,7 @@ int main(int argc, char *argv[]) {
|
|||
bcopy((void*) (host->h_addr), (void*) (&client_socket.sin_addr), host->h_length);
|
||||
|
||||
/* Définition du socket */
|
||||
if ((socket_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
|
||||
if ((sockid = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
|
||||
perror("socket");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
@ -56,21 +55,21 @@ int main(int argc, char *argv[]) {
|
|||
printf("Cible : %s : %d !\n", ip4tostring(ntohl(client_socket.sin_addr.s_addr)), ntohs(client_socket.sin_port));
|
||||
|
||||
/* connect() avec un cast d'un struct générique, le type de struct sera découvert dans sa_family */
|
||||
if (connect(socket_fd, (struct sockaddr *) &client_socket, sizeof(client_socket)) == -1) {
|
||||
if (connect(sockid, (struct sockaddr *) &client_socket, sizeof(client_socket)) == -1) {
|
||||
perror("connect");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* Maintenant qu'on est connecté, on peut échanger avec le serveur. Ici
|
||||
* on a une boucle qui va nous demander un répertoire, le serveur se
|
||||
* chargera de nous renvoyer son contenu avec un `ls`.
|
||||
* Tant qu'on n'a pas écrit "FIN", on boucle. */
|
||||
/* Maintenant qu'on est connecté, on peut échanger avec le serveur.
|
||||
* Ici on a une boucle qui va nous afficher un prompt, le serveur se
|
||||
* chargera de nous renvoyer le résultat de la commande envoyée.
|
||||
* Tant qu'on n'a pas écrit EOT (^D sur Linux), on boucle. */
|
||||
while (1) {
|
||||
printf("%s$ ", argv[1]);
|
||||
if (fgets(buf, BUF_LEN, stdin) != NULL) {
|
||||
if (strcmp(buf, "exit\n") == 0) break;
|
||||
if (strlen(buf) == 1) continue; // Il n'a que '\n'
|
||||
if ((n = write(socket_fd, buf, strlen(buf))) == -1) {
|
||||
if ((n = write(sockid, buf, strlen(buf))) == -1) {
|
||||
perror("write");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
@ -86,7 +85,7 @@ int main(int argc, char *argv[]) {
|
|||
/* Lecture de la réponse */
|
||||
/* Le retour de la commande du serveur pouvant etre très long, on fait une boucle de lecture */
|
||||
fin = 0;
|
||||
while ((n = read(socket_fd, buf, BUF_LEN)) > 0) {
|
||||
while ((n = read(sockid, buf, BUF_LEN)) > 0) {
|
||||
if (buf[n - 1] == EOT) {
|
||||
fin = 1;
|
||||
n--;
|
||||
|
@ -98,7 +97,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
|
||||
/* On ferme la connexion */
|
||||
close(socket_fd);
|
||||
close(sockid);
|
||||
printf("Déconnexion\n");
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
|
22
src/server.c
22
src/server.c
|
@ -16,11 +16,11 @@
|
|||
int RUN = 1;
|
||||
|
||||
int main(void) {
|
||||
int serv_sock_fd, child_sock_fd; // socket id = file descriptor
|
||||
int serv_sockid, child_sockid;
|
||||
struct sockaddr_in server_socket;
|
||||
struct sockaddr_in child_socket; // on définit juste, les valeurs seront récuperées dans accept()
|
||||
struct sockaddr_in child_socket;
|
||||
pid_t pid;
|
||||
long addr_len; // pour récuperer la longueur de l'adresse dans accept()
|
||||
long addr_len;
|
||||
|
||||
/* Gestion des signaux */
|
||||
signal(SIGCHLD, interrupt);
|
||||
|
@ -38,20 +38,20 @@ int main(void) {
|
|||
// server_socket.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
|
||||
|
||||
/* Définition du socket */
|
||||
if ((serv_sock_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
|
||||
if ((serv_sockid = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
|
||||
perror("socket");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* bind() avec un cast d'un struct générique, le type de struct sera découvert dans sa_family */
|
||||
if (bind(serv_sock_fd, (struct sockaddr *) &server_socket, sizeof(server_socket)) == -1) {
|
||||
if (bind(serv_sockid, (struct sockaddr *) &server_socket, sizeof(server_socket)) == -1) {
|
||||
perror("bind");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* On récupere le port d'attache */
|
||||
addr_len = sizeof(server_socket);
|
||||
if (getsockname(serv_sock_fd, (struct sockaddr *) &server_socket, (socklen_t *) &addr_len) < 0) {
|
||||
if (getsockname(serv_sockid, (struct sockaddr *) &server_socket, (socklen_t *) &addr_len) < 0) {
|
||||
perror("getsockname");
|
||||
return EXIT_FAILURE;
|
||||
} else {
|
||||
|
@ -60,7 +60,7 @@ int main(void) {
|
|||
}
|
||||
|
||||
/* On définit le nombre d'écoutes simultanées */
|
||||
if (listen(serv_sock_fd, 10) == -1) {
|
||||
if (listen(serv_sockid, 10) == -1) {
|
||||
perror("listen");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ int main(void) {
|
|||
/* On laisse le serveur accepter des connexions
|
||||
* A chaque connexion établie, le serveur crée un fils pour gérer celle-ci. */
|
||||
while (RUN) {
|
||||
if ((child_sock_fd = accept(serv_sock_fd, (struct sockaddr *) &child_socket, (socklen_t *) &addr_len)) < 0) {
|
||||
if ((child_sockid = accept(serv_sockid, (struct sockaddr *) &child_socket, (socklen_t *) &addr_len)) < 0) {
|
||||
perror("accept");
|
||||
} else {
|
||||
printf("Connexion de %s !\n", ip4tostring(ntohl(child_socket.sin_addr.s_addr)));
|
||||
|
@ -76,14 +76,14 @@ int main(void) {
|
|||
/* Création d'un processus dédié au client */
|
||||
if ((pid = fork()) == -1) {
|
||||
perror("fork");
|
||||
write(child_sock_fd, "Erreur serveur !\n", 18);
|
||||
write(child_sockid, "Erreur serveur !\n", 18);
|
||||
} else {
|
||||
if (pid == 0) { // code du fils
|
||||
service(child_sock_fd); // Regroupe le code pour le fils
|
||||
service(child_sockid); // Regroupe le code pour le fils
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
close(child_sock_fd); // On ferme le file descriptor qu'on vient de créer puisque c'est le fils qui s'en occupe
|
||||
close(child_sockid); // On ferme le file descriptor qu'on vient de créer puisque c'est le fils qui s'en occupe
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue