Evenements Clients <=> serveurs

[Résolu]
Signaler
Messages postés
15
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
7 juin 2011
-
Messages postés
15
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
7 juin 2011
-
Bonjour, je suis au bord du gouffre J'espere que vous aller m'aider a faire un pas en avant

Sous VS 2003 en C++ avec les extensions managées :

Je veut faire un Serveur TCP / Ok la c'a colle. Je démare le serveur sur une action

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
....
SOCKADDR_IN sinserv; //parametres pour server
SOCKADDR_IN sin; //parametres pour sock
...

while(1)
{
if sock=accept(server,(SOCKADDR*)&sin,&sinsize))!=
INVALID_SOCKET)
label1->Text = S"Client connecté";

....


============ Le probleme c'est que : ==================

je veux gérer les évènement de réception et d'envoi en dehors du code de mon bouton !!!

et je ne sais pas comment déclarer que

private: .... MaFncReception (...)
{
....
recv(sock,buffer,sizeof(buffer),0);

....
}


doit être appelée sur un évenement lié au socket !!!!
(Par exemple la simple reception d'un texte !!!)

Merci de toute aide

Pascal

2 réponses

Messages postés
209
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
14 août 2007

Salut,

Dans un premier temps, je scinderais le démarrage du serveur du clic sur le bouton : disons, il pourrait être plus clair de mettre les instructions mettant l'interface en écoute dans une méthode à part.
Ensuite, tu peux tester dans ta boucle while(1) { // ... } les messages reçus puis, selon leur format, rediriger vers une autre méthode.

En espérant t'avoir un peu aidé,
Ciao.
Messages postés
15
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
7 juin 2011

Merci pour ta reponse.

Le probleme est que le C++ avec les extensions managees c'est pire que de l'ADA d'il y a 25ans (T'a pas le droit de faire un pas sans etre accompagne par un scout meme si tu sait ce que tu fait !!! et je parle pas des manipulations d'unions, de bits ou encore de temps reel !!!)

J'ai contourne le probleme j'ai tout reecrit en C# (Que je decouvre) et c'a commence a marcher !

Il n'y a plus ces limitations d'acces aux fonctions ni aux variables (static / ou non)
C'est plus simple

Merci encore.

Pascal