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

Développement Discussion :

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


Sujet :

Développement

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [sockets] échanger des msg en meme temps entre client et 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
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Bonjour,

    a mes yeux, il y a toujours un principe que le developpeur d'application client/server doit garder a l'esprit et que ces applications doivent:
    - activement ecouter pour les communications entrantes
    - envoyer ponctuellement des donnees sur le reseaux
    - les deux fonctions ci-dessus doivent etre un minimum independante

    Personellement, je developpe toujours la partie communication reseaux separement de la partie traitement. Pour cela, j'utilise des Threads ou bien des evenements. Certes, je n'ai jamais eu a le faire avec WinSock2 en C++ mais je pense que les principes sont quand meme valides.

    Ar@mi$
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    quand je chérche sur google à ce sujet je trouve plein de page qui parle sur la fonction select() ......

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 88
    Points
    88
    Par défaut
    Salut Bad_Day,

    Je ne connais pas le C++, mais personnellement, en C, avec gcc par exemple, j'utilise en effet la fonction select() qui est parfaite dans ce cas : elle permet d'écouter sur plusieurs descripteurs de fichiers (ou de sockets!!!) à la fois :

    Dans ton cas, tu dois à la fois écouter stdin (pour le clavier) et ton socket.

    J'avais créé un petit exemple en gcc il y a longtemps, je verrai si je le retrouve.

    Nicolas.

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci Nicolas...
    Enfait moi je Programme en C pas en C++ ...
    Si jamais tu trouve ce petit exemple en gcc que tu à fait tu me le pass ok ?

    Re merci.

  6. #6
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    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 .
    Oui tu le peux le faire, pas de problème.

    Est ce qu'il te faut.

    Regarde le man Select() du site, il y a un exemple dedans aussi.

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Le problème principal n'est pas je pense une question de sockets bloquantes ou non (puisque comme indiqué, select() permet d'y remedier proprement).

    La difficulté selon moi réside en fait dans le fait que la fonction de saisie utilisée pour connaître le message à envoyer (fgets(), getchar(), fgetc() ou autre) est bloquante (sauf getch() mais perte de portabilité...).


Discussions similaires

  1. [GTW/Hibernate/Gilead] problème d'utilisation des 3 en meme temps
    Par <romain/> dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 31/03/2009, 15h35
  2. Réponses: 8
    Dernier message: 30/11/2006, 12h26
  3. Réponses: 8
    Dernier message: 08/09/2006, 15h32
  4. Réponses: 4
    Dernier message: 09/05/2006, 11h21

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