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 :

problème socket serveur.


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Par défaut problème socket serveur.
    Bonjour à tous,

    Voila je me met à la programmation réseaux et j'ai commencé par une simple appli console client-serveur. Mon serveur est censé recevoir des messages du client et les afficher , seulement voila : Il ne le fait pas, la connection se passe très bien , tout est testé et cela fonctionne. Le problème est que recv est censé attendre après une reception de donnée, mais sur mon serveur juste après la connection du client, l'instruction recv s'éxécute alors que je n'ai mm pas eu le temps d'envoyé un message avec mon client :s . Et évidement cela plante.

    Si quelqu'un pouvait m'aider , je join à ce post le code de mon 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
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #include <stdio.h>
    #include <winsock2.h>
     
    int main(void){
        char szMsg[600+1]="";
        struct sockaddr_in saiServerSock = {0};
        struct sockaddr_in saiClientSock = {0};
        int iServerSockID;
        int iClientSockID;
        int iSizeSockClient;
        int iRecvData;
        WSADATA wsaData;
     
        WSAStartup(MAKEWORD(2,0),&wsaData);
     
        iServerSockID = socket(AF_INET,SOCK_STREAM,0);
     
        if(iServerSockID == -1)
        {
            printf("\n<error> Function : socket()");
            fflush(stdin);
            scanf("%*c");
            WSACleanup();
            return 1;
        }
     
        saiServerSock.sin_family = AF_INET;
        saiServerSock.sin_port = htons(2000);
        saiServerSock.sin_addr.s_addr = INADDR_ANY;
     
        /* mise sur écoute du port. */
        bind(iServerSockID,(struct sockaddr*)&saiServerSock,sizeof(saiServerSock)); /* Lie le socket à un port. */
     
        listen(iServerSockID,2); /* 2 : Nombre d'écoute possible du serveur. */
     
        iSizeSockClient = sizeof(saiClientSock);
     
        if(iClientSockID = accept(iServerSockID,(struct sockaddr*)&saiClientSock,&iSizeSockClient) != INVALID_SOCKET){
        printf("\n::::: Client connected");
     
        short sContinue = 1;
     
        while(sContinue)
        { 
     
                iRecvData = recv(iClientSockID,szMsg,sizeof(szMsg)-1,0);
                if(iRecvData == SOCKET_ERROR){
                    printf("\n <error> function : recv()");
                    sContinue=0;
                }else{
                    szMsg[iRecvData] = 0;
                    printf("\n Message : %s",szMsg);
                }
        }
        }
     
        closesocket(iServerSockID);
        WSACleanup();
    }
    J'espère vraiment que quelqu'un sait le pourquoi de ceci.
    Merci d'avance.

    ++
    deck_bsd

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut


    Et aussi le code du client
    Merci.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Par défaut
    sorry pour le code. non non le client n'est pas en cause car , si je le connecte a un autre serveur sur le mm port il fonctionne très bien, le problèm est le serveur :s .

Discussions similaires

  1. [Débutant] Problème socket serveur (attente du client)
    Par synolog dans le forum C#
    Réponses: 14
    Dernier message: 20/10/2011, 18h16
  2. Problème communication serveur/client avec Socket
    Par Nicolas74 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 03/12/2009, 16h54
  3. [FLASH MX2004] [XMLSocket] Problème avec serveur socket php
    Par cocodunombril dans le forum Flash
    Réponses: 4
    Dernier message: 03/04/2009, 02h10
  4. Problème communication sockets serveur mutli-client
    Par muad'dib dans le forum Réseau
    Réponses: 5
    Dernier message: 17/05/2007, 02h21
  5. problème de serveur socket
    Par hiul dragonfel dans le forum MFC
    Réponses: 3
    Dernier message: 01/06/2006, 11h56

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