Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[C++][Socket] Evenement asynchrone

rosewood, le samedi 9 décembre 2006 à 13:37:08
Bonjour,

J'ai créé une class CClientSocket pour gérer les communications par socket du côté client. Cette class permet de se connecter, d'effectuer des requêtes (via un timer qui va lire une pile de messages) et de traiter les répones du serveur aux requêtes.
Auparavant, j'avais également une class de type CDialog qui me servait d'interface graphique. La class CClientSocket envoyait un message AFX (avec les données associées) à la class CDialog lorsque l'on avait recu une reponse du serveur.
Aujourd'hui, au lieu de la class CDialog, j'utilise une autre class qui va me servir d'interface avec une autre application. J'aimerai en fait que CClientSocket previenne cette nouvelle class lorsque l'on recoit une reponse du serveur.
Comment peut-on envoyer un evenement aynchrone à cette nouvelle class (via une callback peut être ?) pour la prevenir de la reception d'une reponse (avec ses données associées) ? (comment met on en place un système de callback appelé sur évenement ?)
J'aimerai en fait éviter que la class d'interface n'ai à scruter un buffer périodiquement (ce que fait deja la class CClientSocket).

Merci d'avance pour votre aide.
Répondre à rosewood  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
starmad88, le samedi 9 décembre 2006 à 18:09:58
Je fairait une chose assez proche des listener en Java:

class Receveur{
  public:
    void recevoirEvenement(){
      // faire quelque chose
    }
};
class Emetteur{
  public:
    void AjouterReceveur(Receveur receveur){
      // ajouter le receveur à une liste
    }

    // Dans une fonction quelquonque :
      receveur.recevoirEvenement();
};

Bien sur tu adaptes à ton problème
Répondre à starmad88

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 rosewood, le dimanche 10 décembre 2006 à 09:57:19
Dans mon cas, la class CClientSocket (Emetteur) se situe dans la class Interface (Receveur):
Class CInterface:
{
public:
CClientSocket socket;

void RequestInfoType1() { socket.request() }
void ReceiveInfoType1();
}

Class CClientSocket
{
public:

void request();
void receive();
}

J'utilise la class CClientSocket pour envoyer mes requêtes mais pour recevoir la reponse, je ne sais pas comment faire le lien entre receive (CClientSocket) et ReceiveInfoType1(Interface).

Est ce qu'une class interne peut appeler une methode de la class externe ?
Répondre à rosewood

Résultats pour [C++][Socket] Evenement asynchrone

Erreur cpu socket (Résolu) Bonjour, J'ai un vieux PC construit avec les carcasses de 3 vieux PC identiques, je n'ai aucune sorti vers l'écran et l'afficheur de la tour donne 'erreur CPU socket'.N'est ce pas censé être un problème de... www.commentcamarche.net/forum/affich-6491420-erreur-cpu-socket
Intel Celeron Tualatin 1.3 GHz Socket 370 In-A-Box Pentium Celeron,1.3 MHz,Socket 370 (FC-PGA),Bus:100.0 MHz,Cache L1:32.0 Ko,Cache L2:256.0 Ko,Divers: ,Fréquence:1300 Mhz,Marque du processeur:Pentium Celeron,Socket:Socket 370 (FC-PGA),Type:Processor www.commentcamarche.net/guide-achat/intel-celeron-tualatin-1-3-ghz-socket-370-in-a-box-153513-fiche-technique
Dell Intel Xeon Dual Core 5050 3.0 GHz Socket 771 667 MHz bus Upgrade Intel Xeon,3 MHz,Socket 771,Bus:667.0 MHz,Cache L1:128.0 Ko,Cache L2:4091.0 Ko,Divers: ,Fréquence:3.0 GHz,Marque du processeur:Intel Xeon,Nbre de coeurs:Dual Coeur,Socket:Socket 771,Type:Upgrade Processeur www.commentcamarche.net/guide-achat/dell-intel-xeon-dual-core-5050-3-0-ghz-socket-771-667-mhz-bus-upgrade-1011490-fiche-technique

Résultats pour [C++][Socket] Evenement asynchrone

PB : socketXCtl (Résolu)Bonjour Depuit quelle que temp , je galere avec un probleme au demarage de mon pc jai ceci qui apparais Failed to load control 'socketXCtl' from socketX.OCX. Your version of socketX.OCX may be outdated. Make sure you are using the version of... www.commentcamarche.net/forum/affich-3223791-pb-socketxctl
Problème Emule (Résolu)Bonjour, en allumant Emule j'ai eu un petit message en forme d'onglet en bas à droite de mon écran, qui me disait: Erreur fatal: impossible de créer socket sur port 4672. Qu'est ce que celà veux dire? C'est grave? Que dois-je... www.commentcamarche.net/forum/affich-4280729-probleme-emule
Type de socket pour mon cpu (Résolu)Bonjour, Un amis ma donner un Kit watercooling de chez Titan (model bianca). Compatible socket Intel 478 Je voudrai savoir de quelle type est le socket de mon cpu. J'arrive pas à determiner si mon Pentium 4 p68 willamette est un 478 ou un 423.... www.commentcamarche.net/forum/affich-5918198-type-de-socket-pour-mon-cpu

Résultats pour [C++][Socket] Evenement asynchrone

AMD Athlon 64 X2 4600+ Dual Core 2.4 GHz Socket AM2 In a BoxX 2 ,AMD Athlon 64 X2, 2.4 MHz, Socket AM2, Ventilateur CPU inclus,Bus: ,Cache L1:128.0 Ko,Cache L2:512.0 Ko,Divers: ,Fréquence:2400 Mhz,Marque du processeur:AMD Athlon 64 X2,Refroidissement compris,Socket:Socket AM2,Type:Processor,Cache L1:128.0... www.commentcamarche.net/guide-achat/amd-athlon-64-x2-4600-dual-core-2-4-ghz-socket-am2-in-a-box-665231-fiche-technique
Intel Core 2 Duo Mobile P8400 2.26 GHz Socket P 1066 MHz bus In a BoxP 8400,Intel Core 2 Duo Mobile,2.26 MHz,Socket P,Ventilateur CPU inclus,Type:Processeur,Refroidissement compris,Socket:Socket P,Marque du processeur:Intel Core 2 Duo Mobile,Nbre de coeurs:Dual Coeur,Divers: ,Fréquence:2.26 GHz,Cache L2:3072.0... www.commentcamarche.net/guide-achat/intel-core-2-duo-mobile-p8400-2-26-ghz-socket-p-1066-mhz-bus-in-a-box-1124367-fiche-technique
AMD Phenom 8450 Triple-Core 2.1 GHz Socket AM2+ busAM 2 ,AMD Phenom Triple, 2.1 MHz, AM2+,Bus: ,Cache L1:384.0 Ko,Cache L2:1536.0 Ko,Divers: ,Fréquence:2.1 GHz,L3 Cache:2048 Kb,Marque du processeur:AMD Phenom Triple,Nbre de coeurs:Triple Core,Socket:AM2+,Type:Processeur,Page web du... www.commentcamarche.net/guide-achat/amd-phenom-8450-triple-core-2-1-ghz-socket-am2-bus-1107637-fiche-technique