[Socket] plusieurs requetes dans une meme socket ?!

plusieurs requetes dans une meme socket ?! [Socket] - Perl - Programmation

Marsh Posté le 04-05-2003 à 15:38:33    

bon j'ai un ti soucis avec les sockets
je fais une premiere requete et tout se passe bien, seulement quand je veut a nouveau faire une requete dans ma socket, ben ca marche plus
 
alors je sais pas si c'est parce qu'il reste des truc dans le buffer qui fais deconner...
 
voila mon bout de code
et la la seconde requete ne me sors aucun resultat ! :(
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use IO::Socket;
  4. use IO::Socket::INET;
  5. my $sock = IO::Socket::INET->new(PeerAddr => "192.168.0.10",
  6.                               PeerPort => "80",
  7.                               Proto    => 'tcp',
  8.                               Timeout => '5'
  9.                               );
  10. if ($sock)
  11. {
  12.         $sock->autoflush(1);
  13.         # requete 1
  14.         print $sock "HEAD / HTTP\1.0\r\n\r\n";
  15.         while (<$sock> )
  16.         {
  17.               chomp $_;
  18.               print "$_\n";
  19.         }
  20.         sleep 1;
  21.         # requete 2
  22.         print $sock "HEAD / HTTP\1.0\r\n\r\n";
  23.         while (<$sock> )
  24.         {
  25.               chomp $_;
  26.               print "$_\n";
  27.         }
  28. }


 
merci d avance pour votre aide

Reply

Marsh Posté le 04-05-2003 à 15:38:33   

Reply

Marsh Posté le 04-05-2003 à 16:13:32    

t'es sur qu'il faut banaliser tes \ dans "HTTP \ 1.0" ?
 
sympa le fonctionnement des socket en perl

Reply

Marsh Posté le 04-05-2003 à 16:19:22    

++Taz a écrit :

t'es sur qu'il faut banaliser tes \ dans "HTTP \ 1.0" ?
 
sympa le fonctionnement des socket en perl


 
comprends pas la question la...

Reply

Marsh Posté le 04-05-2003 à 16:20:31    

mettre \\ à la place de \
 
comme \n, etc

Reply

Marsh Posté le 04-05-2003 à 16:26:11    

++Taz a écrit :

mettre \\ à la place de \
 
comme \n, etc


 
non ca marche tres bien comme ca
c'est pas un probleme de syntaxe dans ma requete
ma premiere marche tres bien...

Reply

Marsh Posté le 04-05-2003 à 20:32:14    

pour le \ taz à raison, faut mettre \\
 
Pour ta question, comme tu est en HTTP 1.0 le socket est fermé par le serveur des k'il à repondu à ta requete, à moins que tu mette un "connection: Keep-alive" dans ta requete.
 
Et puis apres dans tous les cas il faut que tu ecoute tout ce k'il te repond à ta premiere requete avant de pouvoir lui envoyer un autre message

Reply

Marsh Posté le 04-05-2003 à 22:33:52    

en plus je viens de realiser: c'est HTTP/1.0 et non HTTP\1.0
 
et puis je te conseil de mettre un "\015\012" à la place du "\r\n" comme ca t'es sur que ca donne le bon truc kelkeu soit la plateforme
 
j'avais posté un exemple le client http tiré du module lwp::simple de Gisle Aas ya pas longtemps dans la rubrique perl (en reponse à mr tomate il me semble)
 
a+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed