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

MFC Discussion :

Problème de compréhension des CSocket


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut Problème de compréhension des CSocket
    Bonjour, je fait actuellement une petite application avec MFC basée sur les boite de dialogue.
    J'aimerais que lorsque mon application reçois un paquet UDP elle ouvre une nouvelle boite de dialogue qui va afficher le contenu de mon paquet.
    Je me suis un peu documenté sur la classe CSocket de MFC mais je ne suis pas sur de tout bien comprendre.
    -Dois-je créer un thread séparé qui va boucler sur la méthode receive du CSocket et qui lors d'un receive va ouvrir cette nouvelle boite de dialogue? Ou alors est ce que j'ai bien compris qu'il est possible de faire une classe qui hérite de CSocket et ainsi en faisant un override des méthodes OnReceive ... il me sera possible de géré l'arrivée de paquet de manière événementiel?

    - Je n'ai pas tellement bien compris la différence entre CSocket et CAsyncSocket. Laquelle de ces 2 classes est la plus adapté à mon problème?

    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Dans un premier temps, si tu n'es pas trop familié avec la programmation réseau, travaille plutôt avec CSocket. CSocket est une spécialisation de CAsyncSocket. En gros, des comportements spécifiques vont être forcés et la classe peut s'interfacer avec d'autres classes (CSocketFile et CArchive) pour des comportements de plus haut niveau.
    Pour gérer les évènements, effectivement dérive ta classe de CSocket et réécrit les override qui t'intéresse (OnReceive, OnClose).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Ok merci bien.
    Par contre qu'elle sont les différences entre CSocket et CAsyncSocket? Dans mon application je ne vais qu'utiliser le protocole UDP alors comme j'ai cru comprendre de toute façon je ne peut pas utilisé CArchive. (CSocketFile je ne connais pas encore, je vais regardé mais est-ce utilisable avec des socket UDP?) Alors que peut m'apporter CSocket par rapport a CAsyncSocket pour des socket UDP?
    Je ne suis pas totalement novice en programmation réseau. J'ai déjà développé des applications réseau en Java. En revanche je suis assez novice en ce qui concerne le C++ et la librairie MFC

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par MSDN
    Class CAsyncSocket encapsulates the Windows Socket Functions API, providing an object-oriented abstraction for programmers who want to use Windows Sockets in conjunction with MFC.

    This class is based on the assumption that you understand network communications. You are responsible for handling blocking, byte-order differences, and conversions between Unicode and multibyte character set (MBCS) strings. If you want a more convenient interface that manages these issues for you, see class CSocket.
    Voilà, je crois que tout est dit.
    Bon, si tu connais déjà toute la cuisine des sockets, tu peux allez sur CAsyncSocket.
    CSocket, CSocketFile et CArchive te permette d'abstraire ton échange de données. Tu utilise un CArchive dans tes documents pour les lectures/ecritures sans te soucier si l'info vient du réseau ou d'un fichier sur le disque. Bref, tu raisonnes à un niveau d'abstraction plus élevé. Effectivement, cela ne fonctionne pas en mode paquet donc ... compromis pour toi.
    Si tu veux juste faire des séquences envoi/réception, alors effectivement->CAsyncSocket!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Ok merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de compréhension des Iterator
    Par ToTo13 dans le forum C++
    Réponses: 5
    Dernier message: 31/03/2010, 09h46
  2. Réponses: 6
    Dernier message: 01/03/2009, 12h48
  3. Réponses: 3
    Dernier message: 16/06/2008, 17h15
  4. Réponses: 2
    Dernier message: 14/12/2007, 01h47
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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