TEST

TEST

par Mebarka YAHLALI,
Nombre de réponses : 26

Trouver les erreurs :


En réponse à Mebarka YAHLALI

Re: TEST

par Houaria Feriel TAOUCI,
-ligne 8 ( erreurs en ajout argc et argv)
correrction : int main( int argc , char**argv)

-ligne 13 (erreurs c'est le domaine de la socket)
correction : s = socket(AF_INET, SOCK_DGRAM,0);

-ligne 14 ( erreur c'est les "" dans function perror , & 1 dans function exit )
correction : if (s<0) {
perror ("socket");
exit(-1); }

ligne 15 : ( erreur c 'est AF_UNIX)
correction : serv_addr.sin_family = AF_INET;

ligne 17 : (erreur c 'est htons (argv[1]);
correction : (atoi (argv[1]));

ligne 17 .1 : remarque accept vient aprés le bind , pas avant le bind
17.2 (erreur dand function perror , & exit(1) & le point firgule )

ligne 18 : (erreur exit (1) & point firguile)
correction ( 17.1 + 17.2 + 18 ) :
17.1 if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
perror("bind");
exit(-1);
}

18.ss = accept(s, (struct sockaddr*)&cli_addr, &sizeof(cli_addr));
if (ss < 0) {
perror("accept");
exit(-1);
}


-ligne 19 (erreur socket s , sizeof(data)
correction : read ( ss , &nbr , sizeof(nbr) , 0 );

-ligne 21 (erreur socket s )
correction : write ( ss , &nbr , sizeof ( nbr),0);

ligne 22 : ( en ajoute close (ss); )
En réponse à Mebarka YAHLALI

Re: TEST

par Faten Hadil LABANI,
-Ligne ( 8 ) : errure dans la fonction principale 'main()'et manque des paramettre de ce fonction .
correction : int main(int argc, char *argv[])
-Ligne (13 ) : vous utilisez 'AF_UNIX' dans la fonction socket, alors que vous devriez probablement utiliser 'AF_INET' pour une adresse Internet.
correction : s = socket(AF_INET, SOCK_DGRAM, 0);
-Ligne (15 ) : La valeur de 'serv_addr.sin_family' est définie à 'AF_UNIX', mais le code utilise ensuite des fonctions qui sont spécifiques à 'AF_INET'. Vous devez changer 'AF_UNIX' à 'AF_INET' pour que le code fonctionne.
correction : serv_addr.sin_family = AF_INET;
-ligne (16 ) : vous devez utiliser la fonction 'inet_addr()'pour définir l'adresse IP.
correction : serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
-ligne (17 ) : htons nécessite un entier court non signé , donc il faut convertir argv[1] en un entier avant de l'utiliser.
correction : serv_addr.sin_port = htons(atoi(argv[1]));
-ligne (17.1 ) : il ya un erreur dans lordre de accepte et bind.
correction : il faut que Attribution de l'adresse au socket avec 'bind()' va etre Aprés de Acceptation de la connexion entrante avec 'accept()'.
-ligne (17.1 ) : il ya un erreur dans 'accepte()' le point fergule dans les parametre .
correction : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));
-ligne (17.2 ) : il manque le point fergule dans la foction 'exit()'.
correction : exit(1);
-ligne (18 ) : erreur das l'appel à la fonction 'bind()' doit être effectué sur le socket d'écoute 's'et non sur le socket de connexion 'ss'.
correction : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
-ligne (18 ) : il manque le point fergule dans la foction 'exit()'.
correction : exit(1);
-ligne (19 ) : erreur das l'appel à la fonction 'read()' doit être effectué sur le socket de connexion 'ss'et non sur le socket d'écoute 's'.
correction : read(ss, &nbr, sizeof(nbr));
-ligne (21 ) : erreur das l'appel à la fonction 'write()' doit être effectué sur le socket de connexion 'ss'et non sur le socket d'écoute 's'.
correction : write(ss, &nbr, sizeof(nbr));
-ligne (22 ) : close prend un descripteur de fichier, pas un socket.
correction : close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Nour Elhouda DJELLOULI,
1)Ligne 8 : errure dans la fonction principale 'main()' ajout argc et argv
alors int main(int argc, char *argv[])
2)Ligne 13 :erreurs c'est le domaine de la socket
alors utiliser 'AF_INET' pour une adresse Internet s = socket(AF_INET, SOCK_DGRAM,0);
3)Ligne 15 :Vous devez changer 'AF_UNIX' à 'AF_INET' pour que le code fonctionne.
alors serv_addr.sin_family = AF_INET;
4)ligne 16 : utiliser la fonction 'inet_addr()'pour définir l'adresse IP.
alors serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
5)ligne 17 : htons nécessite un entier court non signé
alors : serv_addr.sin_port = htons(atoi(argv[1]));
6)ligne 17.1 : accept vient aprés le bind et il ya un erreur dans 'accepte()' le point fergule dans les parametre
alors : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));
7)ligne 17.2 : 'exit()'.
alors: exit(1);
8)ligne 18 : erreur das l'appel à la fonction 'bind()' doit être effectué sur le socket d'écoute 's'et non sur le socket de connexion 'ss'.
alors : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
9)ligne 18 : il manque le point 'exit()'.
alors : exit(1);
10)ligne 19 : erreur das l'appel à la fonction 'read()' doit être effectué sur le socket de connexion 'ss'et non sur le socket d'écoute 's'.
alors : read(ss, &nbr, sizeof(nbr));
11)ligne 21 : erreur das l'appel à la fonction 'write()' doit être effectué sur le socket de connexion 'ss'et non sur le socket d'écoute 's'.
alors : write(ss, &nbr, sizeof(nbr));
12)ligne 22 : ajout close prend un descripteur de fichier
alors: close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Mohamed Redha OTMANI,
erreur ligne 12 argc n'est pas declaré
erreur ligne 12 Printf c'est printf minuscule
erreur ligne 16 serv_addr.sin_addr.s_addr = 127.0.0.1 => inet_addr("127.0.0.1 ")
erreur en fait le bind avant le accept
erreur ligne 17 argv[] n'est pas declaré
erreur ligne 17->1 &sizeof(cli_addr) => int size = sizeof(serv_addr); accept(..,&size);
erreur ligne 18 bind(ss,...); => bind(s,...); s de serveur
erreur ligne 19 read prend 3 argument seulement pas 4
erreur ligne 19 data n'est pas declaré
erreur ligne 21 write prend 3 argument pas 4
il faut ajouter close(ss); 
string.h et netinet/in.h pas nécessaire et est pas nécessaire
En réponse à Mebarka YAHLALI

Re: TEST

par Abderrahmane SAADI,
-Aprés la ligne 7: Ajouter la bibliothéque #include .
-Ligne 8: Erreur dans 'main()' ajouter argc et argv.
correction: int main(int argc, char *argv[])
-ligne 12: Les guillemets de fermeture (') ne sont pas corrects, p minuscule et exit.
correction : printf("port??\n"); exit(-1);
-ligne 13: Erreur dans le domaine de creation socket et le type parce que on utilise read et write (en mode connecté(TCP)).
correction: s = socket(AF_INET,SOCK_STREAM,0);
-ligne 15: AF_UNIX devrait être AF_INET pour spécifier le protocole IP.
correction : serv_addr.sin_family = AF_INET;
-ligne 16: Ajouter la fonction "inet_addr()" pour définir l'adresse IP.
correction : serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
-ligne 17: argv[1] doit être convertir en un entier avant d'être utilisé dans htons.
correction : serv_addr.sin_port = htons(atoi(argv[1]));
-ligne 17.1: le bind est le premier aprés l'accept.
on fait sizeof(cli_addr) dans un variable.
supprimer ; aprés sizeof(cli_addr).
-ligne (17.2 ) : dans la fin, il n'y a pas ;
correction :
if (bind(s, &serv_addr, sizeof(serv_addr)) < 0) {
perror("bind");
exit(-1);
}
int L = sizeof(cli_addr)
ss = accept(s, &cli_addr, &L);
if (ss < 0) {
perror("accept");
exit(-1);
}
-ligne 19: il y'a 3 paramétre ,changé data par nbr et un erreur de l'appel accept.
correction : read(ss, &nbr, sizeof(nbr));
-ligne 21: il y'a 3 paramétre et un erreur de l'appel accept.
correction : write(ss, &nbr, sizeof(nbr));
-Aprés la ligne 21 : Ajouter la Fermeture de descripteur de fichier.
correction : close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par HAFSA SADOUKI,
ssaccept (s(struct sockaddr") &cli_addr, & sizeof (cli_addr););

if (ss<0) [

perror ('accept');

}

exit(1)

18. if (bind(s), (struct sockaddr")&serv_addr,sizeof(serv_addr))<0)

{ perror('bind');

exit(1)

}

19.read(s, tnbr, sizeof(data),0); 20.nbr-nbr*2;

21.write (s, &nbr, sizeof(nbr),0);

22.close(s);

23.return 0;

24.]


Voici les erreurs corrigées :

Ligne 12 : Remplacez Printf par printf et corrigez la citation : printf("port?? \n"); exit(1);
Ligne 13 : Changez AF_UNIX en AF_INET pour un socket Internet.
Ligne 14 : Remplacez les crochets [ et ] par des accolades { et }.
Ligne 16 : Corrigez argy en argv : serv_addr.sin_port = htons(atoi(argv[1]));
Ligne 17 : Corrigez ssaccept en accept et enlevez la parenthèse après s.
Ligne 17 : Corrigez &cli_addr, & sizeof (cli_addr) en &cli_addr, sizeof(cli_addr).
Ligne 17 : Remplacez ['accept'); par ("accept");.
Ligne 18 : Corrigez la parenthèse après s : if (bind(s, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0).
Ligne 18 : Remplacez ('bind'); par ("bind");.
Ligne 19 : Corrigez tnbr en &nbr.
Ligne 21 : Corrigez write (s, &nbr, sizeof(nbr),0); en write (s, &nbr, sizeof(nbr));.
Ligne 23 : Ajoutez un point-virgule à la fin de la ligne.
En réponse à Mebarka YAHLALI

Re: TEST

par Amine Redha RIGHI,
correction des erreurs
1-la syntaxe des instructions conditionnelles if , else les conditions doivent être entre parenthèses ( ) ,pas entre crochets [ ] ou accolades { }.
2-il manque une déclaration pour argc et argv [ ] dans la fonction main ( ) .
3-socket (AF_UNIX,SOCK_DGRAM,0); devrait etre s=socket (AF_INET, SOCK_STREAM,0);
4-il y a une erreur de syntaxe dans la fonction printf( ) : "port ?\n' devrait etre "port ?\n"
5-les appels aux fonctions perror ( ) et exit ( ) ont des erreurs: perror( 'socket"); et exit (1); ) devrait etre
perror ("socket"); et exit (1);
6-serv_addr .sin_addr .s_addr =127.0.0.1 ;devrait etre serv_addr .sin_addr .s_addr =htonl(INADDR_ANY);
7-serv_addr .sin_port =hotons(argv[1]); devrait etre serv_addr .sin_port =hotons( atoi(argv[1]) );
8-1 .ss=accept (s(struct sockaddr ") &cli_addr , &sizeof (cli_addr);); sont des lignes incorrectes et doivent etre réécrites coorectement
9-if (bind(s) , (struct sockaddr*&serv_addr ,sizeof(serv_addr))<0) devrait etre if (bind(s ,(struct sockaddr*&serv_addr ,sizeof(serv_addr) ) < 0)
10-les déclarations int s, ss, nbr , et char c ;devrait etre sur des lignes séparés
11-nbr-nbr*2; devrait etre = nbr * 2 ;
12-return 0 ; ] devrait etre return 0; }
En réponse à Mebarka YAHLALI

Re: TEST

par Asmaa MOUSSAOUI,
-ligne 8 ( erreurs en ajout argc et argv)
correrction : int main( int argc , char**argv)

-ligne 13 (erreurs c'est le domaine de la socket)
correction : s = socket(AF_INET, SOCK_DGRAM,0);

-ligne 14 ( erreur c'est les "" dans function perror , & 1 dans function exit )
correction : if (s<0) {
perror ("socket");
exit(-1); }

ligne 15 : ( erreur c 'est AF_UNIX)
correction : serv_addr.sin_family = AF_INET;

ligne 17 : (erreur c 'est htons (argv[1]);
correction : (atoi (argv[1]));

ligne 17 .1 : remarque accept vient aprés le bind , pas avant le bind
17.2 (erreur dand function perror , & exit(1) & le point firgule )

ligne 18 : (erreur exit (1) & point firguile)
correction ( 17.1 + 17.2 + 18 ) :
17.1 if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
perror("bind");
exit(-1);
}

18.ss = accept(s, (struct sockaddr*)&cli_addr, &sizeof(cli_addr));
if (ss < 0) {
perror("accept");
exit(-1);
}


-ligne 19 (erreur socket s , sizeof(data)
correction : read ( ss , &nbr , sizeof(nbr) , 0 );

-ligne 21 (erreur socket s )
correction : write ( ss , &nbr , sizeof ( nbr),0);

ligne 22 : ( en ajoute close (ss); )
En réponse à Mebarka YAHLALI

Re: TEST

par KELTOUMA BOUACHRIA,
les erreurs sont :
La ligne 8 : en ajoutant les arguments dans le fonction main () pour accepter les arguments de la ligne de commande
correction est: int main(int argc, char *argv[])
la ligne 13 : erreur dans le domaine de socket:
correction : s = socket(AF_INET, SOCK_DGRAM, 0);
la ligne 15 erreur dans AF_UNIX
correction : serv_addr.sin_family = AF_INET;
la ligne 17 et 18 : on a une erreur : normalement on a la connection " bind " avant accecptation "accept"
la ligne 22 :
close (ss) au lieu de close(s) fermer le socket ss per conter le "s" est un discripteur de fichier
En réponse à Mebarka YAHLALI

Re: TEST

par Abdlelkrim KHELEF,
#include
#include
#include
#include


int main() {

    int s = socket(AF_INET,SOCK_DGRAM,0);

    struct sockaddr_in *addr;

    addr.sin_family = AF_INET;

    addr.sun_port = 3000;

    addr.sin_addr.s_addrs = INADDRANY;

    if(bind(&s,addr,sizeof(addr))==-1) {

        printf("bind succés");

    }

    return 0;

}
En réponse à Mebarka YAHLALI

Re: TEST

par hami mokhtar,
Il y a plusieurs erreurs dans ce code

La ligne 12 : Il y a une erreur de syntaxe dans la fonction Printf. La fonction Printf devrait être en minuscules, elle devrait être printf.
La ligne 13 : Il y a une erreur de spécification de domaine de socket. AF_UNIX devrait être AF_INET pour les sockets IPv4.
La ligne 16 : Il y a une erreur dans l'initialisation de l'adresse IP du serveur. L'adresse IP devrait être spécifiée sous forme d'une adresse de type struct in_addr et non d'une adresse sous forme décimale. De plus, 127.0.0.1 est une adresse IPv4, donc elle ne devrait pas être utilisée avec AF_UNIX.
La ligne 17 : htons prend un argument de type unsigned short, donc argv[1] doit être converti en entier avant d'être passé à cette fonction. De plus, il manque l'opérateur d'adressage (&) devant argv[1].
La ligne 17 : Il manque une virgule après s.
La ligne 17 : htons est utilisé, mais la famille d'adresse est spécifiée comme AF_UNIX. Cela doit être cohérent avec AF_INET.
La ligne 18 : Il y a une erreur de syntaxe dans l'appel à bind. Les guillemets simples devraient être remplacés par des guillemets doubles autour du texte d'erreur.
La ligne 19 : read prend un descripteur de fichier en premier argument, mais le descripteur s n'est pas utilisé ici. De plus, sizeof(data) n'est pas défini, cela devrait être sizeof(nbr) si vous voulez lire nbr de la socket.
La ligne 20 : L'opérateur - semble être utilisé incorrectement, peut-être qu'il devrait être = au lieu de -.
La ligne 21 : L'appel à write n'est pas correctement formaté, il devrait y avoir une virgule après nbr.
La ligne 22 : Il y a une erreur de syntaxe dans l'appel à close. Les guillemets simples devraient être remplacés par des guillemets doubles autour du texte d'erreur.
La ligne 23 : return devrait être en minuscules, Return.
La ligne 24 : Il y a une erreur de syntaxe, il semble qu'il y a une parenthèse fermante sans une parenthèse ouvrante correspondante.
En réponse à Mebarka YAHLALI

Re: TEST

par Abdlelkrim KHELEF,
correction des erreurs
1-la syntaxe des instructions conditionnelles if , else les conditions doivent être entre parenthèses ( ) ,pas entre crochets [ ] ou accolades { }.
2-il manque une déclaration pour argc et argv [ ] dans la fonction main ( ) .
3-socket (AF_UNIX,SOCK_DGRAM,0); devrait etre s=socket (AF_INET, SOCK_STREAM,0);
4-il y a une erreur de syntaxe dans la fonction printf( ) : "port ?\n' devrait etre "port ?\n"
5-les appels aux fonctions perror ( ) et exit ( ) ont des erreurs: perror( 'socket"); et exit (1); ) devrait etre
perror ("socket"); et exit (1);
6-serv_addr .sin_addr .s_addr =127.0.0.1 ;devrait etre serv_addr .sin_addr .s_addr =htonl(INADDR_ANY);
7-serv_addr .sin_port =hotons(argv[1]); devrait etre serv_addr .sin_port =hotons( atoi(argv[1]) );
8-1 .ss=accept (s(struct sockaddr ") &cli_addr , &sizeof (cli_addr);); sont des lignes incorrectes et doivent etre réécrites coorectement
9-if (bind(s) , (struct sockaddr*&serv_addr ,sizeof(serv_addr))<0) devrait etre if (bind(s ,(struct sockaddr*&serv_addr ,sizeof(serv_addr) ) < 0)
10-les déclarations int s, ss, nbr , et char c ;devrait etre sur des lignes séparés
11-nbr-nbr*2; devrait etre = nbr * 2 ;
12-return 0 ; ] devrait etre return 0;
En réponse à Mebarka YAHLALI

Re: TEST

par Daoui BOUHAFS,
1)Ligne 8 : errure dans la fonction principale 'main()' ajout argc et argv
alors int main(int argc, char *argv[])
2)Ligne 13 :erreurs c'est le domaine de la socket
alors utiliser 'AF_INET' pour une adresse Internet s = socket(AF_INET, SOCK_DGRAM,0);
3)Ligne 15 :Vous devez changer 'AF_UNIX' à 'AF_INET' pour que le code fonctionne.
alors serv_addr.sin_family = AF_INET;
4)ligne 16 : utiliser la fonction 'inet_addr()'pour définir l'adresse IP.
alors serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
5)ligne 17 : htons nécessite un entier court non signé
alors : serv_addr.sin_port = htons(atoi(argv[1]));
6)ligne 17.1 : accept vient aprés le bind et il ya un erreur dans 'accepte()' le point fergule dans les parametre
alors : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));
7)ligne 17.2 : 'exit()'.
alors: exit(1);
8)ligne 18 : erreur das l'appel à la fonction 'bind()' doit être effectué sur le socket d'écoute 's'et non sur le socket de connexion 'ss'.
alors : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
9)ligne 18 : il manque le point 'exit()'.
alors : exit(1);
10)ligne 19 : erreur das l'appel à la fonction 'read()' doit être effectué sur le socket de connexion 'ss'et non sur le socket d'écoute 's'.
alors : read(ss, &nbr, sizeof(nbr));
11)ligne 21 : erreur das l'appel à la fonction 'write()' doit être effectué sur le socket de connexion 'ss'et non sur le socket d'écoute 's'.
alors : write(ss, &nbr, sizeof(nbr));
12)ligne 22 : ajout close prend un descripteur de fichier
alors: close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par BOUCHIKHI Mustapha,
voici les erreurs détectées dans ce programme C++ :

1-Les en-têtes de C tels que #include , #include , et #include sont utilisés au lieu de leurs équivalents en C++ comme , , et .
2-L’utilisation de printf est présente ; en C++, il est recommandé d’utiliser std::cout.
3-exit(1) est utilisé, ce qui n’est pas recommandé en C++. Il serait préférable de retourner une valeur depuis la fonction principale.
4-Il y a une erreur syntaxique avec
if(argc > 2), qui devrait être if(argc < 2) pour vérifier si argc est inférieur à 2.
5-La variable ‘data’ dans l’appel de fonction ‘read’ n’est pas déclarée ni initialisée.
6-Le code utilise AF_UNIX pour la famille d’adresses, mais une adresse IP est également spécifiée, ce qui est contradictoire.
Pour une aide plus détaillée, veuillez partager le code directement sous forme de texte.
En réponse à Mebarka YAHLALI

Re: TEST

par Soufiane FATTAH,
-ligne 8 : erreurs en ajout argc et argv)
la réponse juste c’est : int main( int argc , char**argv)
-Ligne (13) : vous utilisez 'AF_UNIX' dans la fonction socket, alors que vous devriez probablement utiliser 'AF_INET' pour une adresse Internet.
la réponse juste c’est : s = socket(AF_INET, SOCK_DGRAM, 0);

-Ligne (15) : La valeur de 'serv_addr.sin_family' est définie à 'AF_UNIX', mais le code utilise ensuite des fonctions qui sont spécifiques à 'AF_INET'. Vous devez changer 'AF_UNIX' à 'AF_INET' pour que le code fonctionne.
la réponse juste c’est : serv_addr.sin_family = AF_INET;

-ligne (16) : vous devez utiliser la fonction 'inet_addr()'pour définir l'adresse IP.
la réponse juste c’est : serv_addr.sin_addr.s_addr = inet_addr("INADDR_ANY;");

-ligne (17) : htons nécessite un entier court non signé , donc il faut convertir argv[1] en un entier avant de l'utiliser.
la réponse juste c’est : serv_addr.sin_port = htons(atoi(argv[1]));
-ligne (17-1) : il ya un erreur dans 'accepte()' le point virgule dans les paramètre .
la réponse juste c’est : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));

-ligne (17-2) : il manque le point virgule dans la fonction 'exit()'.
la réponse juste c’est : exit(1);
-ligne 18 : erreur dans l'appel à la fonction 'bind()' doit être effectué sur le socket d'écoute 's'et non sur le socket de connexion 'ss'.
la réponse juste c’est : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
Ligne (21) : Il manque un ";" après "write (s, &nbr, sizeof(nbr),0)".
la réponse juste c’est: : write(ss, &nbr, sizeof(nbr));
Ligne 20 : L'opération "nbr-nbr*2" n'a pas de sens car elle soustrait un nombre à lui-même et le multiplie ensuite par 2.
-ligne 22 : close(s);
la réponse juste c’est : close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Mustapha Habib FELLAH,


Ligne 8:

Erreur: Fonction principale 'main()' sans paramètres.
Correction: Ajouter int argc, char *argv[] comme paramètres de la fonction main.

Ligne 13:

Erreur: Domaine de la socket incorrect.
Correction: Utiliser AF_INET pour une adresse Internet : s = socket(AF_INET, SOCK_DGRAM, 0);.

Ligne 15:

Erreur: Utilisation de AF_UNIX au lieu de AF_INET.
Correction: Changer serv_addr.sin_family = AF_UNIX; en serv_addr.sin_family = AF_INET;.

Ligne 16:

Erreur: Fonction inet_addr() non utilisée pour définir l'adresse IP.
Correction: Utiliser inet_addr("127.0.0.1") pour définir l'adresse IP : serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");.

Ligne 17:

Erreur: Argument de htons() non converti en entier court non signé.
Correction: Convertir l'argument argv[1] en entier court non signé avant de l'utiliser : serv_addr.sin_port = htons(atoi(argv[1]));.

Ligne 17.1:

Erreur: Point-virgule manquant dans les paramètres de accept().
Correction: Ajouter un point-virgule après sizeof(cli_addr) : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));.

Ligne 17.2:

Erreur: Absence de l'appel exit().
Correction: Ajouter exit(1); après l'appel accept().

Ligne 18:

Erreur: Appel de bind() sur le mauvais socket.
Correction: Appeler bind() sur le socket d'écoute s : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0).

Ligne 18.1:

Erreur: Absence de l'appel exit().
Correction: Ajouter exit(1); après l'appel bind().

Ligne 19:

Erreur: Appel de read() sur le mauvais socket.
Correction: Appeler read() sur le socket de connexion ss : read(ss, &nbr, sizeof(nbr));.

Ligne 21:

Erreur: Appel de write() sur le mauvais socket.
Correction: Appeler write() sur le socket de connexion ss : write(ss, &nbr, sizeof(nbr));.

Ligne 22:

Erreur: Fonction close() sans argument.
Correction: Indiquer le descripteur de fichier à fermer : close(ss);.
En réponse à Mebarka YAHLALI

Re: TEST

par FATIMA MORADJI,
Nous Remarque qua y a deuxe facons de sounder exerciser
Le premier cas ;
si nous considerons le programme de servure mode noconnect UDP

ajouter la bibliothéque #include apri ligne (07 )
ligne (09 ) int main(int argc, char **argv)
ligne (10) char c ;c caractuer preis difini langaja c :chr* ("127.0.0.1");
ligne (12) if(argc != 2){ int port = atoi(argv[1]);
ligne (13) socket = socket(s=AF_INET, SOCK_DGRAM, 0);
ligne (14) if (ss == -1) {
perror("Erreur lors de la création du socket");
exit(EXIT_FAILURE) ;
}
ligne (15) serv_addr.sin_family = AF_INET;
ligne (16) serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); if (ss == -1) {
perror("Erreur lors de la création du socket");
exit(EXIT_FAILURE);
}
ligne (17) serv_addr.sin_port = htons(atoi(argv[1]));
ligne (17_1) supprimer function accept (udp
correction : exit(1);
ajouter : memset(&serv_addr r, '\0', sizeof(serv_addr));
ligne (18) (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr
ligne (19 ) data n'est pas declaré
recvfrom (ss, &nbr, sizeof(nbr) 0, (struct sockaddr*)& ip, &addr_size);

ligne (20)
ligne (21) sendto (ss, &nbr, sizeof(nbr) 0, (struct sockaddr*)& ip, &addr_size);
ligne (22) ajouter close(ss);
Le deuxieme cas
;si nous considerons le programme de servure mode connecté(TCP) ;.
ajouter la bibliothéque #include apri ligne (07 )
ligne (09 ) int main(int argc, char **argv)
ligne (10) char c ;c caractuer preis difini langaja c :chr* ("127.0.0.1");
newsocke ; newaddr

ligne (12) if(argc != 2){ int port = atoi(argv[1]);
ligne (13) socket = socket(s=AF_INET, SOCK_STREAM , 0);

ligne (14) if (ss == -1) {
perror("Erreur lors de la création du socket");
exit(EXIT_FAILURE);
}
ligne (15) serv_addr.sin_family = AF_INET;
ligne (16) serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
ligne (17) serv_addr.sin_port = htons(atoi(argv[1]));
ligne (17_1) order la function accept aprie bind ; lisen
ajouter : memset(&serv_addr r, '\0', sizeof(serv_addr));
ligne (18) if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr
ajouter la function listen
if listen (s,4 );
ajouter la function accept aprie listen
addrsize = sizeof(newaddr);
newssocket = accept(serverSocket, (struct sockaddr*r, &addrsize);
if (newsocket == -1) {)&newadd
perror("Erreur lors de l'acceptation de la connexion");
exit(EXIT_FAILURE);
}
ligne (19 ) data n'est pas declaré
read(newsocke, &nbr, sizeof(nbr) 0, (struct sockaddr*)& ip, &addr_size);
ligne (20 )

ligne (21)write(newsocket, nbr, sizeof(nbr), 0);
ligne (21) send(newSocket, buffer, strlen(buffer), 0);

ligne (22) ajouter close(newsocket);
En réponse à Mebarka YAHLALI

Re: TEST

par Abderrahmane DJELLAT,
Ligne 8 :
Erreur : La fonction principale 'main()' est définie sans paramètres.
Correction : Pour corriger cela, ajoutez int argc, char *argv[] comme paramètres de la fonction main.

Ligne 13 :
Erreur : Utilisation d'un domaine de socket incorrect.
Correction : Utilisez AF_INET pour une adresse Internet en remplaçant le domaine de socket par AF_INET dans la création de la socket : s = socket(AF_INET, SOCK_DGRAM, 0);

Ligne 15 :
Erreur : Utilisation incorrecte de AF_UNIX au lieu de AF_INET.
Correction : Changez AF_UNIX en AF_INET pour définir le type de famille de l'adresse du serveur : serv_addr.sin_family = AF_INET;

Ligne 16 :
Erreur : Absence d'utilisation de la fonction inet_addr() pour définir l'adresse IP.
Correction : Utilisez inet_addr("127.0.0.1") pour définir l'adresse IP du serveur : serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

Ligne 17 :
Erreur : Argument non converti en entier court non signé avant l'utilisation de htons().
Correction : Convertissez l'argument argv[1] en entier court non signé avant de l'utiliser avec htons() : serv_addr.sin_port = htons((unsigned short)atoi(argv[1]));

Ligne 17.1 :
Erreur : Point-virgule manquant dans les paramètres de la fonction accept().
Correction : Ajoutez un point-virgule après sizeof(cli_addr) dans l'appel à accept() : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));

Ligne 17.2 :
Erreur : Absence de l'appel à la fonction exit().
Correction : Ajoutez exit(1); après l'appel à la fonction accept() pour gérer les erreurs.

Ligne 18 :
Erreur : Utilisation incorrecte de bind() sur le mauvais socket.
Correction : Appelez bind() sur le socket d'écoute s : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0).

Ligne 18.1 :
Erreur : Absence de l'appel à la fonction exit().
Correction : Ajoutez exit(1); après l'appel à la fonction bind() pour gérer les erreurs.

Ligne 19 :
Erreur : Utilisation incorrecte de read() sur le mauvais socket.
Correction : Appelez read() sur le socket de connexion ss : read(ss, &nbr, sizeof(nbr));

Ligne 21 :
Erreur : Utilisation incorrecte de write() sur le mauvais socket.
Correction : Appelez write() sur le socket de connexion ss : write(ss, &nbr, sizeof(nbr));

Ligne 22 :
Erreur : Absence d'argument pour la fonction close().
Correction : Spécifiez le descripteur de fichier à fermer avec close() : close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Ahmed Amine BELHADJI,
-Aprés la ligne 6: Ajouter la bibliothéque #include .
-Ligne 8: Erreur dans 'main()' ajouter argc et argv.
correction: int main(int argc, char *argv[])
-ligne 12: Erreur dans Les guillemets pour le message (') , p minuscule et exit.
correction :
printf("port??\n");
exit(-1);
-ligne 13: Erreur dans le domaine de creation socket et le type.
correction: s = socket(AF_INET,SOCK_STREAM,0);
-ligne 15: changer AF_UNIX par AF_INET .
correction : serv_addr.sin_family = AF_INET;
-ligne 16: Ajouter la fonction "inet_addr()".
correction : serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
-ligne 17: argv[1] doit être convertir en un entier avant d'être utilisé dans htons.
correction : serv_addr.sin_port = htons(atoi(argv[1]));
-ligne 17.1: le bind est le premier aprés l'accept.
on fait sizeof(cli_addr) dans un variable.
supprimer ; aprés sizeof(cli_addr).
-ligne (17.2 ) : Ajouter ; la fin de la ligne
correction :
if (bind(s, &serv_addr, sizeof(serv_addr)) < 0) {
perror("bind");
exit(-1);
}
int L = sizeof(cli_addr)
ss = accept(s, &cli_addr, &L);
if (ss < 0) {
perror("accept");
exit(-1);
}
-ligne 19: il y'a 3 paramétre ,changé data par nbr et un erreur de l'appel accept.
correction : read(ss, &nbr, sizeof(nbr));
-ligne 21: il y'a 3 paramétre et 1 erreur de l'appel accept.
correction : write(ss, &nbr, sizeof(nbr));
-Aprés la ligne 21 : Ajouter la Fermeture de descripteur de fichier.
correction : close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Mustapha OTMANI,
Ligne(8): Il manque les paramètres dans la fct main()
=> int main(int argc , char*argv[])
Ligne(13): En utilise des adresses internet donc AF-UNIX n'est pas compatible
=> s= socket(AF_INET,SOCK_DGRAM,0);

Ligne(15): changement 'AF_UNIX' par 'AF_INET'

Ligne(16): il manque la fct 'inet_addr()'
=> inet_addr("127.0.0.1");

Ligne(17): convertir argv[1] nécessite atoi
=> =htons(atoi(argv[1]));

Ligne (17.1): accept vient après le bind, pas avant le
Le point vergule dans les paramètres de fct accept

Ligne(17.2)
=> exit(1);

Ligne(18): l'appel de la fct bind() effectué sur le socket d'écoute 's' non sur 'ss' (socket de cnx)

Ligne(19): read() effectué sur le socket de cnx
=> read(ss,&nbr,sizeof(data),0);

Ligne(21): 'write()' effectué sur le socket de cnx non sur socket d'écoute 

Ligne(22): il manque de close() qui prend un description de fichier 
=>  close(ss);

En réponse à Mebarka YAHLALI

Re: TEST

par Toumia MOKHTARI,
Nous ajoutons deux bibliothèques
#include #include - Erreur de la fonction main : erreur en ajoute argc , argv
Correction:
Int main(int argc,char** argv)
La ligne 13: erreur lors de l'ecriture du socket pour que nous ayons deux processus a distance, nous utilisons donc INET au lieu d'UNIX
Correction:
S=socket (AF_INET ,SOCK_DGRAM ,0);
La ligne 15: toujours les processus a distances donc on utilise AF_INET au lieu de AF_UNIX
Correction:
Serv_addr.sin_family=AF_INEt;
La ligne 17: erreur manque atoi
Correction:
Serv_addr.sin_port=htons(atoi(argv[1]));
- la ligne 17.1 erreur dans le classement accepte toujours aprés bind
- la ligne 18: on utilise s au lieu de ss
Correction. :
if (bind(s,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)
- la ligne 19: on utiluse ss au lieu de s
Correction:
read(ss,&data, sizeof(data));
- la ligne 21 : on utilise ss au lieu de s
Correction:
write (ss,&nbr,sizeof(nbr));
En réponse à Mebarka YAHLALI

Re: TEST

par SOLTANI Mohamed Habib,
ligne 8 : erreurs en ajout argc et argv)
la réponse juste c’est : int main( int argc , char**argv)
-Ligne (13) : vous utilisez 'AF_UNIX' dans la fonction socket, alors que vous devriez probablement utiliser 'AF_INET' pour une adresse Internet.
la réponse juste c’est : s = socket(AF_INET, SOCK_DGRAM, 0);

-Ligne (15) : La valeur de 'serv_addr.sin_family' est définie à 'AF_UNIX', mais le code utilise ensuite des fonctions qui sont spécifiques à 'AF_INET'. Vous devez changer 'AF_UNIX' à 'AF_INET' pour que le code fonctionne.
la réponse juste c’est : serv_addr.sin_family = AF_INET;

-ligne (16) : vous devez utiliser la fonction 'inet_addr()'pour définir l'adresse IP.
la réponse juste c’est : serv_addr.sin_addr.s_addr = inet_addr("INADDR_ANY;");

-ligne (17) : htons nécessite un entier court non signé , donc il faut convertir argv[1] en un entier avant de l'utiliser.
la réponse juste c’est : serv_addr.sin_port = htons(atoi(argv[1]));
-ligne (17-1) : il ya un erreur dans 'accepte()' le point virgule dans les paramètre .
la réponse juste c’est : ss = accept(s, (struct sockaddr*) &cli_addr, sizeof(cli_addr));

-ligne (17-2) : il manque le point virgule dans la fonction 'exit()'.
la réponse juste c’est : exit(1);
-ligne 18 : erreur dans l'appel à la fonction 'bind()' doit être effectué sur le socket d'écoute 's'et non sur le socket de connexion 'ss'.
la réponse juste c’est : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
Ligne (21) : Il manque un ";" après "write (s, &nbr, sizeof(nbr),0)".
la réponse juste c’est: : write(ss, &nbr, sizeof(nbr));
Ligne 20 : L'opération "nbr-nbr*2" n'a pas de sens car elle soustrait un nombre à lui-même et le multiplie ensuite par 2.
-ligne 22 : close(s);
la réponse juste c’est : close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Allaa eddine Rahmani,
Ligne(8): Il manque les paramètres dans la fct main()
=> int main(int argc , char*argv[])
Ligne(13): En utilise des adresses internet donc AF-UNIX n'est pas compatible
=> s= socket(AF_INET,SOCK_DGRAM,0);

Ligne(15): changement 'AF_UNIX' par 'AF_INET'

Ligne(16): il manque la fct 'inet_addr()'
=> inet_addr("127.0.0.1");

Ligne(17): convertir argv[1] nécessite atoi
=> =htons(atoi(argv[1]));

Ligne (17.1): accept vient après le bind, pas avant le
Le point vergule dans les paramètres de fct accept

Ligne(17.2)
=> exit(1);

Ligne(18): l'appel de la fct bind() effectué sur le socket d'écoute 's' non sur 'ss' (socket de cnx)

Ligne(19): read() effectué sur le socket de cnx
=> read(ss,&nbr,sizeof(data),0);

Ligne(21): 'write()' effectué sur le socket de cnx non sur socket d'écoute

Ligne(22): il manque de close() qui prend un description de fichier
=> close(ss);
En réponse à Mebarka YAHLALI

Re: TEST

par Abdlelkrim KHELEF,
CORRECTION DES ERREUR int main(int argc, char *argv[]) { int s, ss, nbr; struct sockaddr_in cli_addr, serv_addr; if (argc != 2) { printf("Usage: %s \n", argv[0]); exit(1); } s = socket(AF_INET, SOCK_DGRAM, 0); if (s < 0) { perror("socket"); exit(1); } memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); serv_addr.sin_port = htons(atoi(argv[1])); if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) { perror("bind"); exit(1); } if (read(ss, &nbr, sizeof(nbr)) < 0) { perror("read"); exit(1); } nbr -= nbr * 2; if (write(ss, &nbr, sizeof(nbr)) < 0) { perror("write"); exit(1); } close(ss); close(s); return 0; }
En réponse à Mebarka YAHLALI

Re: TEST

par Mekki MEDKOUR,
ligne 8 argc وargv إضافة
Dèclaration:
int main( int argc , char**argv)

-ligne 13 : s = socket(AF_INET, SOCK_DGRAM,0);

-ligne 14
Sol : if (s<0) {
perror ("socket");
exit(-1); }

ligne 15 :
Sol : serv_addr.sin_family = AF_INET;

ligne 17 :
Sol : (atoi (argv[1]);
En réponse à Mekki MEDKOUR

Re: TEST

par Yamina MERABET,
ligne 8 ( erreurs en ajout argc et argv)
correrction : int main( int argc , char**argv)

-ligne 13 (erreurs c'est le domaine de la socket)
correction : s = socket(AF_INET, SOCK_DGRAM,0);

-ligne 14 ( erreur c'est les "" dans function perror , & 1 dans function exit )
correction : if (s<0) {
perror ("socket");
exit(-1); }

ligne 15 : ( erreur c 'est AF_UNIX)
correction : serv_addr.sin_family = AF_INET;

ligne 17 : (erreur c 'est htons (argv[1]);
correction : (atoi (argv[1]));

ligne 17 .1 : remarque accept vient aprés le bind , pas avant le bind
17.2 (erreur dand function perror , & exit(1) & le point firgule )

Ligne 18:

Erreur: Appel de bind() sur le mauvais socket.
Correction: Appeler bind() sur le socket d'écoute s : if (bind(s, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0).

Ligne 18.1:

Erreur: Absence de l'appel exit().
Correction: Ajouter exit(1); après l'appel bind().

Ligne 19:

Erreur: Appel de read() sur le mauvais socket.
Correction: Appeler read() sur le socket de connexion ss : read(ss, &nbr, sizeof(nbr));.

Ligne 21:

Erreur: Appel de write() sur le mauvais socket.
Correction: Appeler write() sur le socket de connexion ss : write(ss, &nbr, sizeof(nbr));.

Ligne 22:

Erreur: Fonction close() sans argument.
Correction: Indiquer le descripteur de fichier à fermer : close(ss);.