IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

[socket] erreur accept


Sujet :

Réseau C

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut [socket] erreur accept
    bonjour,

    voilà mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
            int iSock, iRetour;
    	struct sockaddr_in siAdresse; //Declaration de la structure des infos liés à l'ecoute
     
    	// initialisation du port d'ecoute
    	int m_iPort = 3232;
     
    	//Creation de la socket d'ecoute
    	iSock = socket(AF_INET, SOCK_STREAM, 0);
    	if (iSock < 0)
            {
                    cout << " erreur socket" << endl
    		return 0;
            }
     
    	siAdresse.sin_family 	  = AF_INET;
    	siAdresse.sin_port   	  = htons(m_iPort); 
    	siAdresse.sin_addr.s_addr = INADDR_ANY;
     
    	//lie la socket au port et a l'adresse 
    	iRetour = bind( iSock, (struct sockaddr*)& siAdresse, sizeof(siAdresse));
    	if (iRetour < 0)
            {
                    cout << " erreur bind" << endl
    		return 0;
            }
     
    	int iSockClient;
     
    	int iTailleC = sizeof (siAdresse);
     
    	listen (iRetour, 5);
    	// lancement du serveur et attente des clients
    	while (true)
    	{
    		cout << "Attente d'un client" << endl;
    		iSockClient = accept(iRetour, (struct sockaddr*)& siAdresse, (socklen_t*) iTailleC);	
    		if (iSockClient == -1)
    		{
    			cout << "erreur dans le accpet" << endl;
    			return 0;
    		}
     
    		cout << "Un Client vient de se connecter" << endl;
    	}
    y'a t'il qqchose qui n'est pas bon car systematiquement il me dit : "erreur dans le accept" sans attentre, direct (meme pas le temps d'essyaer de me connecter)!!! je comprends pas


    voici les fichier que j'inclus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <iostream>>
     
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h>
    #include <memory.h>
    #include <errno.h>
    p.S. y'en a surement trop mais c'etait pour etre sur d'avoir rien oublié
    p.s.2 en affichant le errno apres le accept il m'affiche 88 je ne sais pas à quoi cela ca correspond


    Merci de votre aide car la je panique !!!!

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    fais un perror (page de man ici)

    cela te permetra de savoir quelle fonction echoue et a quoi correspond l'erreur.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    (socklen_t*) iTailleC);
    Tu passes la taille, castée en adresse...

    Rajoute un &, ça devrait mieux marcher...

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Points : 33
    Points
    33
    Par défaut
    pour le perror, tu fais juste du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(connect(....)<0)
    {
       perror("erreur connect: ");
       exit(-2);
    }
    Comme ca tu auras un détail de l'erreur...
    Et regarde bien chaque paramètre de tes bind, connect, listen, accept... suffit de raté une * ou un & et ca merde...

Discussions similaires

  1. socket : erreur avec bind()
    Par horkets dans le forum Réseau
    Réponses: 11
    Dernier message: 30/10/2006, 11h47
  2. [Socket] Erreur: NotSerializableException
    Par rvfranck dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/02/2006, 22h05
  3. [Socket] erreur de connexion
    Par coachbob44 dans le forum C++
    Réponses: 4
    Dernier message: 03/03/2005, 17h14
  4. [socket & windows & accept]
    Par Magique dans le forum Réseau
    Réponses: 7
    Dernier message: 30/04/2004, 23h34
  5. Gestion de sockets: fonction Accept
    Par keupon dans le forum MFC
    Réponses: 12
    Dernier message: 22/01/2004, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo