Perl to Python

cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009 - 16 sept. 2008 à 17:44
gorgonite Messages postés 14 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 17 novembre 2010 - 13 nov. 2010 à 20:40
Bonjour,

je ne savais pas trop ou poster mon message étant donné qu'il n'y a pas de codes sources pour Perl.

J'ai en fait un code en Perl que je dois retranscrire en python et je m'arrache les cheveux dessus depuis toute la journée et la je crac :D
Le code est à base de socket Unix :

export STAT_SERVER="/var/run/ctasd/ctasd.stats"

perl -e '
        use IO::Socket;
        use IO::Socket::UNIX;
        use IO::Select;
   use Socket;        my $client new IO::Socket::UNIX(Type> SOCK_DGRAM, Blocking => 0, Proto => AF_UNIX) or
                die "failed to create client socket. $!";

   my $client_sock = "/tmp/.stats_all"."_$$.sock";
   unlink $client_sock;
   my $client_addr = sockaddr_un($client_sock);
   $client->bind($client_addr) or die "failed to bind client socket. $!";
   chmod 666,$client_sock;

        my $server_addr = sockaddr_un($ENV{STAT_SERVER});
   $client->send ("getall",0,$server_addr) or die "failed to send to server_socket $!";
   my $sel = new IO::Select $client;
   $sel->can_read(5) or die "timeout waiting for server";
   $client->recv ($s, 100000);
   print $s;
'
 JE sais créer des socket unix et tout et tout en Python (server et client etc...) j'ai deja bosser dessus comme un fou. Mais la j'avouerais que je ne comprend pas comment focntionne les sockets perl. On dirait qu'il y a qu'une socket client créer et que des socket serveurs sont appelé .... enfin bref je ne comprend pas tout ... si quelqu'un pouvait m'éclairer je serais très "happy" :D:D

Merci d'avance

Mike

1 réponse

gorgonite Messages postés 14 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 17 novembre 2010
13 nov. 2010 à 20:40
il s'agit de socket locale sous Unix

si on prend l'exemple "standard"
http://docs.python.org/library/socket.html#socket-example
au lieu de AF_INET, il faut passer en AF_UNIX
le méthode settimeout permet de définir quand une exception socket.timeout sera levée


essaies de coder cela, on corrigera (la traduction se fait de tête en moins de 2 min)
0
Rejoignez-nous