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 :

Erreur de socket


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut Erreur de socket
    Bonjour ,
    Je debute en C et avec les sockets . J'ai fais une petite application client/serveur qui s'envoie juste du texte , mais sa ne marche pas .
    le code :
    le client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                    int sock;
    		sock = socket(AF_INET, SOCK_STREAM, 0);
    		struct sockaddr_in to;
    		to.sin_family = AF_INET;
    		to.sin_port = htons(8000);
    		to.sin_addr.s_addr = inet_addr("127.0.0.1");
    		if ( connect(sock,(struct sockaddr*)&to, sizeof(to)) != -1 ) {
     
    			char nameFile[50];
    			test = recv(sock, nameFile, sizeof(nameFile),0);
    			printf("namefile : %d, %s\n",strlen(nameFile),nameFile);
    		}
    le serveur :
    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
     
            int sock;
    	sock = socket(AF_INET, SOCK_STREAM, 0);
    	struct sockaddr_in addr;
    	addr.sin_family = AF_INET;
    	addr.sin_port = htons(8000);
    	addr.sin_addr.s_addr = INADDR_ANY;
    	if ( (bind(sock,(struct sockaddr *)&addr, sizeof(struct sockaddr))) != -1 ) {
     
    		listen(sock, 50);
     
    		int sock2;
    		struct sockaddr_in from;
    		socklen_t fromlen;
    		sock2 = accept(sock,(struct sockaddr *)&from, &fromlen);
                   char nameFile[] = "test.jpg";
    		send(sock2,nameFile,sizeof(nameFile),0);
    	}
    Le probleme , et que la variable "nameFile" dans la client ne vaus rien .
    Si vous pourriez m'expliquer la raisons .. .
    Merci ++

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Combien vaut test ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Combien vaut test ?
    Et si par hasard il vaut -1 ben essaye alors de faire un printf("%s\n", strerror(errno))
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    Test = 0
    Donc pas d'erreur a se que je conclu?
    Donc pourquoi nameFile ne faut rien après le recv()?

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Marnage Voir le message
    Test = 0
    Donc pas d'erreur a se que je conclu?
    Euh... il me semble qu'il devrait contenir le nb de caractères reçus. Donc ptet pas d'erreur mais t'as reçu 0 octets !!!
    Va voir errno...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    test = recv(sock, nameFile, sizeof(nameFile),0);
    printf("errno : %s\n", strerror(errno));
    printf("test : %d\nnamefile : %d, %s\n",test,strlen(nameFile),nameFile);
    voila se que me retourne les prinft :
    errno : Success
    test : 0
    namefile : 0,
    errno retourne "Success" donc la je comprend encore moin pourquoi nameFile ne vaux rien :/

Discussions similaires

  1. Erreur communication socket
    Par docr1 dans le forum Applets
    Réponses: 5
    Dernier message: 21/07/2008, 17h59
  2. Erreur de socket
    Par Tigrounette dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 24/09/2007, 11h47
  3. erreur de socket avec applet
    Par fumiste972 dans le forum Applets
    Réponses: 3
    Dernier message: 18/07/2006, 16h11
  4. Erreur connexion socket
    Par tilte dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/04/2006, 23h48
  5. Erreur de socket avec le composant Indy idHTTP
    Par Etanne dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/10/2004, 11h27

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