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 :

[sockets] �changer des msg en meme temps entre client serveur


Sujet :

R�seau C

  1. #1
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 13
    Par d�faut [sockets] �changer des msg en meme temps entre client serveur
    Salut,
    J'ai fait un petit exemple de client/serveur (avec Winsock2 sous Windows) qui permet d'�chang� des messages entre le client et le serveur.

    Simplement voil�:
    Le client ne peut envoyer un message au serveur que si le serveur a r�pondu au msg du client , et c'est idem pour le serveur . C�d : qu'il �change des message � tour de r�le.

    Et je me demande ci en peut faire en sorte que le client et le serveur peuvent envoy� des msg tout les 2 , c�d en m�me temps .
    J�ai essay� mais je n'arrive pas � le faire . Il faut toujours attendre la r�ponse du client pour que le serveur puisse envoy� , et ainsi de suit ....
    Est-ce qu'on peut le faire...

    merci pour votre aide.

    ps: si vous voulez voire le code actuel demender .

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    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 398
    Par d�faut
    Tu peux travailler en asynchrone.
    L'inconv�nient, c'est si tu tentes d'envoyer de grandes donn�es (en non-bloquant, tu ne peux pas vraiment envoy�er de donn�es plus grandes que le buffer d'�mission (souvent 8ko)).

    Pour travailler en Asynchrone sous Win32, si tu es habitu� aux fen�tres/bo�tes de dialogue, tu peux utiliser la fonction WSAAsyncSelect(). Avec cette fonction, d�s qu'il se passe un truc sur le socket, la fen�tre re�oit un message.
    L�, tu peux envoyer quand tu veux, et recevoir quand il le faut...
    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 averti
    Inscrit en
    Ao�t 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 13
    Par d�faut
    euh
    Je n'est pas tout compris l�

    un petit exemple sera le bien venu

    merci

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    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 398
    Par d�faut
    D�j�, est-ce que tu as d�j� programm� en fen�tre sous Win32 ?
    Sinon, c'est pas la peine d'aller plus loin dans cette branche de l'asynchrone ---> Tourne-toi plut�t vers la fonction select().
    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.

  5. #5
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 13
    Par d�faut
    Citation Envoy� par M�dinoc
    D�j�, est-ce que tu as d�j� programm� en fen�tre sous Win32 ?
    Sinon, c'est pas la peine d'aller plus loin dans cette branche de l'asynchrone ---> Tourne-toi plut�t vers la fonction select().
    Un exemple avec la fonction select() sera le bienvenu .
    car je ne vois pas trop comment l'utilis� .

    merci bien.

  6. #6
    Expert �minent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retrait�
    Inscrit en
    D�cembre 2003
    Messages
    14 512
    D�tails du profil
    Informations personnelles :
    �ge : 69
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 14 512
    Par d�faut
    Citation Envoy� par Bad_Day
    Un exemple avec la fonction select() sera le bienvenu
    Le web est rempli d'exemples d'utilisation de select(). Google est ton ami...

  7. #7
    Membre Expert Avatar de zooro
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par d�faut
    Apr�s une br�ve recherche sur les forums:
    http://man.developpez.com/man2/select.2.php

  8. #8
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 13
    Par d�faut
    Citation Envoy� par Emmanuel Delahaye
    Le web est rempli d'exemples d'utilisation de select(). Google est ton ami...
    Oui mais le probl�me c'est comment l'utiliser avec le point de vu de mon probl�me en hau.

  9. #9
    Membre Expert Avatar de zooro
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par d�faut
    http://man.developpez.com/man2/select.2.php#L8
    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
     
    #include <stdio.h>
    #include <sys/time.h>
    #include <sys/types.h>
    #include <unistd.h>
     
    int
    main(void)
    {
     while (1) {    
        fd_set rfds;
        struct timeval tv;
        int retval;
     
        /* Surveiller stdin (fd 0) en attente d'entrées */
        FD_ZERO(&rfds);
        FD_SET(0, &rfds);
        /* Pendant 5 secondes maxi */
        tv.tv_sec = 5;
        tv.tv_usec = 0;
     
        retval = select(1, &rfds, NULL, NULL, &tv);
        /* Considérer tv comme indéfini maintenant ! */
     
        if (retval) {
            printf("Données disponibles maintenant\n");
            /* lire le message reçu */
        }
        else {
            printf("Pas de données depuis 5 secondes\n");
            /* envoyer un message au pair (ou faire autre chose...) */
        }
     
     }
     
     return (0);
    }

Discussions similaires

  1. Rafraichissement des donn�es sql serveur entre clients /serveur
    Par ROMILA dans le forum Bases de donn�es
    R�ponses: 16
    Dernier message: 03/03/2012, 16h56
  2. R�ponses: 2
    Dernier message: 31/03/2009, 16h35
  3. R�ponses: 8
    Dernier message: 30/11/2006, 13h26
  4. [sockets] �changer des msg en meme temps entre client et serveur
    Par Bad_Day dans le forum D�veloppement
    R�ponses: 6
    Dernier message: 02/10/2006, 18h57
  5. R�ponses: 4
    Dernier message: 09/05/2006, 12h21

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