Salut à tous.

Alors tout d'abord je tiens à préciser que je suis assez novice en la matière, et après avoir cherché pas mal dans Google la réponse à mon problème, je vous pose la question en désespoir de cause.

En fait je dois développer deux programmes (démons) sous Fedora qui tournent en parallèle.
Le démon A doit envoyer des données (contenue dans des fichiers) au démon B. Actuellement, les deux démons tournent sur la même machine mais je veux faire passer les données par des sockets réseau et non par des fichiers, le but final étant que les démons A et B ne soient pas nécessairement sur la même bécane (voire même qu'il y ait plusieur démons A sur différentes machines qui se réfère à un seul démon B sur une autre).

Pour le moment tout est donc en local.

Bon, alors le démon A est le client (qui va envoyer les données) et B est le serveur.

J'ai donc dans le code du démon A, un socket(), bind() et connect() (pour le send etc.. je verrai plus tard car je problème se situe avant).

J'ai également rajouté un setsockopt(..,SO_REUSEADDR,&on,sizeof(on)) dans le code du démon A.

Le démon B, dans son code à la création du socket d'écoute, et une fonction select permettant d'avoir plusieurs socket d'échange simultanés. Lorsque je lance le démon B en premier, celui ci se met bien en attente d'une connexion sur le socket d'écoute (enfin j'espère^^).

Par contre quand je lance le démon A tout seul, celui-ci doit se connecter au 127.0.0.1:5555 (le sock est bindé sur cette adresse et port). Et je n'ai aucune erreur de connexion (même si aucun serveur n'est lancé o_O) !!

En revanche, si je lance (logiquement) le démon B puis le démon A, le bind du démon A est impossible : j'ai une erreur 98 (adress is already in use), car le socket d'écoute de B est déjà bindé sur 127.0.0.1:5555.

Alors là je ne sais plus comment faire pour envoyer des données d'un programme à un autre via les socket sur ma machine locale....Y'a un truc que je n'ai pas compris dans tout ce bouzin!!

Merci de votre aide, et désolé pour la lecture.