[gull] serveur tcp et udp clients multiple

Félix Hauri felix at f-hauri.ch
Tue Jan 6 19:04:07 CET 2009


Bonjour,

On Tue, Jan 06, 2009 at 04:24:59PM +0100, Yann Sagon wrote:
>                     -------------------------------
>             1x UDP  |                             | n x TCP
>              ====>  |                             | ===>
>                     | copie du message            | ===>
>                     |                             |...
>                     |                             | ===>
>                     -------------------------------

Unidirectionnel, donc?

De quoi ``n'' est il fait?

A priori, tu peux le faire en shell, avec un spécaliste des connexions
 réseau comme netcat, des fifos et la commande de multiplexage ``tee'':
   $ for ((i=1;i<=N;i++));do
      mkfifo /tmp/fifo$i
      nc tcp_ip_$i tcp_port </tmp/fifo$i &
      done
   $ nc -u udp_ip udp_port | tee /tmp/fifo1 /tmp/fifo2 ... /tmp/fifoN
)

> ... Je communique entre les fork par des pair de socket.
> ça fonctionne mais c'est très bricolage.
Un socket est en principe bi-directionnel. D'autre part, si tu parles
de paires, c'est que tu utilises des connexions bi-directionnelles!?

(Pas sûr de bien comprendre le but)

> J'aimerais le re faire en QT pour qu'il soit éventuellement portable.
Je pense que pour ce genre d'applic, si tu n'as pas de besoin toolkit
graphique, il faut le faire en C. Pour prototyper ou réaliser un outil
simple, performant et rapidement, Perl (ou Python) semble indiqué.

> Il me semble que ce que je vais devoir faire c'est un thread par
> client tcp plus un thread pour le serveur udp.
Oui, c'est ce que fait le script shell ci-dessus.

> Ce dont je ne suis pas sûr c'est comment faire communiquer les threads
> entre eux. J'ai vu que qt propose différentes méthodes d'IPC.
Perl et Python égallement.
(Bash aussi, à la limite;)

> ... autrement que en faisant du polling.
Tout dépend de ce que tu veux faire exactement...
``Transformer'' de l'udp en tcp, à la volée, ce n'est pas anodin.
(controle d'erreur, répetitions, connexions, state ...)

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list