salut à tous,
Je travaille actuellement sur un projet de routeur/concentrateur linux temps réel.
Je dois programmer une application qui permet de récupérer des données sur plusieurs interfaces et des les renvoyer vers une autre. Pour cela je dois utiliser des sockets.
J'ai 3 interfaces en entrée => chacune 1 @IP différente (sur le meme réseau) mais meme numéro de port
Mon interface de sortie =>@ip différente (réseau différent) => mm numéro de port.
J'ai un générateur de paquets (créé avec des sockets)qui envoie des données sur les 3 interfaces d'entrée via un hub.
Donc mon application doit faire un forward des packets d'une interface entrée vers l'interface de sortie.
Pour cela, je crée un socket par interface ( sockets au total).
Pour détecter qu'il y a quelque chose qui arrive sur l'interface, j'ai pensé au select() mais ne fonctionne pas (car application réseau temps réel..API RTnet et non linux)
J'ai pensé aux threads. Mais je ne sais pas trop comment ca marche.
Peut etre que je peux créer 1 thread par interface d'entrée.
Celui-ci appelle une fonction (et un argument ==> le numéro de socket) qui recoit sur un socket et renvoie sur la quatrieme..
J'espere avoir été clair.
Si quelqu'un peut m'éclaircir sur l'utilisation des threads et sockets?
(PS: Je travaille avec des sockets UDP)
Partager