[C]socket

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  2. Utilisateur anonyme
     
    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