Bonjour ,
voila mon problème est le suivant :
Un daemon qui tourne sur un poste Solaris auquel se connectent des clients .
le problème c'est que quand par exemple le serveur fait un traitement pour un client donné , et que ce client se deconnecte sans prévenir . a l'instant ou le serveur doit envoié le resultat j'ai un BROKEN PIPE . et la tout s'arréte
ce que je voulez c'est plutot que le serveur affiche un message puis continue .
j'ai pensé au Handler mais la il affiche bien le message mais s'arréte quand même s'achant que dans le handler je ne fait pas de exit ...
voila mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 POSIX::sigaction(SIGPIPE, POSIX::SigAction->new(\&catchBrokenPipe)) or die "Error setting SIGPIPE handler: $!\n"; my $daemon = SOAP::Transport::HTTP::Daemon -> new (LocalAddr => $host, LocalPort => $port) # dispatch to use for CC -> dispatch_to('$rep'); print "Server READY\n"; print "Contact SOAP server at ", $daemon->url, "\n"; # A bloking call $daemon->handle; # Server ends print "\n\nServer DOWN\n"; } sub catchBrokenPipe { print "\n[NETWORK ERROR] Connexion lost client \n" ; print " Please check your network equipements\n" }
Partager