Socket, process et autre avec c++ - C++ - Programmation
Marsh Posté le 30-08-2004 à 10:48:28
Est ce que qqun au moins pourrait me dire où trouver les infos concernant la librairie poll.h et signal.h ?
Marsh Posté le 30-08-2004 à 13:41:55
Utilise les balises [cpp] pour ton code. Après, pour ton problème, c'est quoi un temps mort ? Explique en 2 lignes ton problème.
Marsh Posté le 30-08-2004 à 14:42:55
Dsl pour les balises, je n'avais pas vu que ça existait.
En gros, on écoute deux systèmes (qu'on appellera système 1 et système 2 alias gescom)à la fois.
Le principe de base: on reçoit une demande du système 1 qu'on retransmets immédiatement au système 2.
Actuellement, on se met en écoute sur tous les ports et dès qu'on reçoit un signal (poll(pollfds,(accept_connexion==TRUE)?2:1,tmp_timer)), on traite en priorité les messages proveant de système 2. Si le signal arrive du système 1, on construit immédiatement le message à envoyer au système 2.
Code :
|
Seulement maintenant il y a une variante. A partir du moment où on reçoit un signal du sytème 1, il faut se mettre attente pour recevoir d'autres données avant de faire suivre au système 2.
Avant on n'écoutait que sur deux canals (celui du système 1 et celui du système 2. Or maintenant, on devra écouter sur d'autres ports (n sur le système 1 et un sur le système 2). On met donc un timeout de 5 s sur les ports en écoute sur le système 1.
J'avoue que c'est assez délicat à expliquer donc n'hésitez pas à demander des précisions.
Marsh Posté le 31-08-2004 à 15:14:55
Personne ne sait où je peux trouver des renseigner sur la librairie "poll.h" et en particulier sur la fonction "poll" ?
Marsh Posté le 27-08-2004 à 18:19:01
Bonjour à tous,
Le c++, c'est bien mais ça devient vite compliqué quand on touche des domaines assez techniques (TCP-IP) et aussi quaud ce n'est pas nous qui avons écrit le programme
Bref ! Voici un petit bout de code que je m'empresse de vous expliquez.
On a un systeme qui reçoit des messages ou des demandes de connexion qui viennent de plusieurs entrés, en l'occurence "de gescom" et d'une socket lsock. En gros, on lit sur ces deux sockets. Si un événement arrive (sur l'un ou l'autre), on lit en priorité sur Gescom puis sur lsock. S'il une connexion s'établit sur lsock, il construit un message et le renvoie à un autre systeme illico.
ça c'était avant!
Le problème maintenant, c'est qu'une fois qu'on a une connexion sur lsock, on doit recevoir des données avant de construire un message et de le renvoyer ( avant on servait juste de relai )et là ça devient plus compliqué sachant qu'on veut éviter au maximum les temps morts (ce qui était le cas avant). En gros, une fois la connexion établie avec csock, il faut écouter sur csock or si on le fait dans la foulée, ça risque de créer des temps morts.
Bon je suis conscient de ne pas être très clair...
C'est pourquoi je me tiens à votre disposition s'il y a des bonnes âmes fan d'informatique qui veulent bien m'aider pour répondre à leur questions.
Message édité par cakeman le 30-08-2004 à 14:18:44