Connexion à plusieurs serveurs à partir d’un seul socket client C

Un seul client tente de se connecter à mon serveur principal à l’aide du socket s1. Le client doit continuer à essayer de se connecter au serveur principal avec s1, tout en se connectant et en continuant à envoyer des messages “try” à mon serveur secondaire. Est-ce une bonne idée de créer 2 sockets, de réutiliser un port et de créer 2 liaisons pour ces 2 sockets ou existe-t-il de meilleurs moyens d’y parvenir? Ceci est un côté client et utilise des sockets C. Merci.

Si votre programme est un client pour plusieurs serveurs, utilisez un socket par serveur. Vous n’avez pas du tout besoin de bind pour un socket client, connect simplement.

Je pense que vous utilisez un socket TCP (n’est-ce pas?). Donc, un socket pour la connexion est nécessaire. Ensuite, le port de réutilisation n’est pas très important car votre application est une application cliente, ce qui permet de démarrer la connexion. Tout port sortant devrait être ok.

Comme vous ne pouvez appeler connect(2) qu’une fois par socket orienté stream, vous devez utiliser au moins deux sockets pour établir deux connexions simultanées (ou tentatives de connexion).

Vous n’avez pas besoin de bind(2) quoi que ce soit sur les ports clients, sauf dans des cas étranges. (Je pense au démon portmapper de Sun RPC, mais heureusement, cela fait presque 10 ans que je me soucie de ce démon. horrible.)