[C]socket

Résolu/Fermé
Utilisateur anonyme - 14 mars 2010 à 10:19
 Utilisateur anonyme - 15 mars 2010 à 09:24
Bonjour à tous !

voila la ou ca pose probleme :
        ns = accept(s,(struct sockaddr *) &fsain, &fromlen);

        if(ns==SOCKET_ERROR)
        {
            printf("erreur d'acceptation\n");
            system("PAUSE") ;
            exit(1) ;
        }
        printf("connexion etablie\n");
        clients[nbrClient] = ns; //le probleme est ici
        nbrClient++;


voila en gros je voudrai stocker dans le tableau clients (du type SOCKET) les clients connéctés mais ca plante à chaques fois la ... si quelqu'un pouvait m'éclaircir ca serai sympas.

bne journée

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
14 mars 2010 à 15:49
Bonjour,

Sur quel OS es-tu ?
if(ns==SOCKET_ERROR)
Que vaut SOCKET_ERROR ? Est-ce toi qui l'as défini ou il fait il est défini dans un header
En tous les cas, ns renvoie -1 si accept() échoue.
exit(1) ;
exit(EXIT_FAILURE) serait plus portable.

clients[nbrClient] = ns;
Que vaut nbrClient ? S'il n'est pas initialisé, tu as l'explication de l'erreur. S'il est trop grand, il y aura également une erreur. Et, enfin comment as-tu déclaré le tableau clients ?

Cdlt,
0
Utilisateur anonyme
15 mars 2010 à 09:24
yop !

j'ai repris un ancien programme et il marche.

la j'avais fais un tableau de SOCKET, nbclient est a 0 au lancement du programme.

sur mon autre programme, c'est un tableau d'entier et ca marche niquel ! merci pour ton aide ;)


bon code, bne journée
0