RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 lecture/écriture sur socket

Forum : PERL
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ PERL

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM PERL

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
sephiburp
Nouveau membre
Inscrit : 19/08/2007
Messages : 1
Message
#141165
Posté le 19/08/07 à 12:40
Bonjour,

J'aimerais faire du client-serveur avec des sockets en Perl.

J'ai 2 scripts : un serveur.pl et un client.pl.
Le serveur fonctionne correctement mais j'ai un problème avec le client.

voici son code :


use IO::Socket; use warnings; use strict; my ($sock, $kidpid); $sock = IO::Socket::INET->new(Proto => "tcp", PeerAddr => "192.168.0.11", PeerPort => 9000) || die "Failed : $!"; $sock->autoflush(1); $kidpid = fork(); die "can't fork: $!" if ! defined($kidpid); if ($kidpid) { # PERE : Ecoute des entrées clavier et envoi à la socket while (<STDIN>) { print $sock $_; } } else { # FILS : Ecoute de la socket et affichage à l'écran while (<$sock>) { print STDOUT $_; } } close $sock;


Le client se connecte au serveur et reçoit bien les messages d'accueil du serveur.
Mais après la première ligne rentrée au clavier, çà se "bloque". Et le serveur ne recoit même pas cette ligne.

En mettant des print à toutes les lignes, j'en ai conclu que le processus père n'arrive pas à écrire sur la socket tant que le fils boucle sur cette même socket pour écouter.
Si je ne fais que écrire ou que écouter, cà fonctionne très bien. Mais les 2 en même temps, çà veut pas.

J'ai essayer plusieurs scripts client trouvés sur le net et j'en arrive toujours au même problème.
Même celui proposé ici réagit pareil : Lien

Je suis sous Windows 2000 et j'utilise Perl 5.8.8
le fork() de Perl sous Windows ne pose pas de problème. Par exemple, si père et fils ne font que des prints, çà marche.

Peut-être y a-t-il d'autres paramètres à utiliser pour les sockets sur windows ?

Merci d'avance pour votre aide !!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.