Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion Sockets Perl embed / C

3 réponses
Avatar
ugo.parsi
Bonjour,

Je recherche depuis pres de deux jours un moyen de faire fonctionner
les sockets en Perl quand ces dernieres ont ete initialisees en C dans
un serveur.

Globalement je passe a ma fonction Perl le file descriptor renvoye par
le accept() en C.

Jusque la tout est coherent, et ma fonction Perl recoit le meme FD.

Le probleme est que je suis ensuite incapable d'ecrire sur le client
connecte au serveur....

Aucune erreur n'est renvoyee...

Voici ce que je fais :

open(SOCKET,">&=$fd");
print SOCKET "hello world\n";

sachant que $fd correspond au file descriptor renvoye par le accept();

Si je remplace $fd par 1 (STDOUT), ou 2 (STDERR), je n'ai aucun
probleme....

Je suppose que je dois rater une etape :(
Mais je ne trouve malheureusement pas dans les nombreuses docs Perl.

Si quelqu'un a une idee :) ?!


Merci,

Ugo PARSI

PS : Je n'ai pas le choix de l'architecture, elle m'est imposee, donc
je ne peux pas par exemple utiliser directement Perl pour gerer le
serveur et les sockets, ce qui serait beaucoup plus simple et coherent
:)

3 réponses

Avatar
Jacques Caron
Salut,

On 12 Apr 2005 03:27:06 -0700, Ugo PARSI wrote:

Voici ce que je fais :

open(SOCKET,">&=$fd");
print SOCKET "hello worldn";


Il faudrait peut être faire un flush (implicite ou explicite) sur le
fichier, non?

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
ugo.parsi
Fixé....

Il s'agissait de la bufferisation de la fonction print....

Désolé pour le bruit...
Avatar
ugo.parsi

Il faudrait peut être faire un flush (implicite ou explicite) sur le
fichier, non?



C'etait exactement ca....

Merci :)