Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2298 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [socket en perl] ecouter un port sur son pc

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[socket en perl] ecouter un port sur son pc

n°1269489
matthieu59​78
Posté le 18-12-2005 à 15:35:37  profilanswer
 

Bonjour à toutes et tous
 

Code :
  1. use IO::Socket;
  2. $socket= IO::Socket::INET->new
  3. (
  4. PeerAddr => 'localhost',
  5. PeerPort => 4672,
  6. Proto    => "UDP",
  7. Type     => SOCK_STREAM
  8. )or die "impossible d'ouvrir le port.\n";
  9. $answer=<$socket>;
  10. print $answer;


 
je ne sais pas pourquoi mais quelque soit la configuration (port et url) mon programme me sort "impossible d'ouvrir le port" et mon  firewall ne reagit meme pas (il ne doit donc pas etre sollicité).

Message cité 1 fois
Message édité par matthieu5978 le 18-12-2005 à 15:36:52
mood
Publicité
Posté le 18-12-2005 à 15:35:37  profilanswer
 

n°1269531
djtoz
Posté le 18-12-2005 à 17:04:15  profilanswer
 

pour une socket udp c'est SOCK_DGRAM

n°1269535
matthieu59​78
Posté le 18-12-2005 à 17:19:08  profilanswer
 

djtoz a écrit :

pour une socket udp c'est SOCK_DGRAM


 
j'ai remplacé par SOCK_DGRAM mais ca ne change rien :/
 
merci quand même


Message édité par matthieu5978 le 18-12-2005 à 17:19:58
n°1269568
djtoz
Posté le 18-12-2005 à 18:53:55  profilanswer
 

ton port est pas deja en ecoute ?

n°1269701
matthieu59​78
Posté le 19-12-2005 à 09:13:27  profilanswer
 

djtoz a écrit :

ton port est pas deja en ecoute ?


 
Nan je pense pas mais j'ai essayé plusieurs ports comme le 21 (je n'ai pas de serveur ftp) et d'autres pris au hasard et j'ai le meme message.  

n°1269854
matthieu59​78
Posté le 19-12-2005 à 12:42:06  profilanswer
 

djtoz tu avais raison j'ai essayé en mettant comme url : http://www.telecharger.com et 80 comme port et la en effet la connexion s'etablie. Une question: je ne peux donc pas ecouter mes propres ports avec cette methode?

n°1269901
djtoz
Posté le 19-12-2005 à 14:00:05  profilanswer
 

matthieu5978 a écrit :

djtoz tu avais raison j'ai essayé en mettant comme url : http://www.telecharger.com et 80 comme port et la en effet la connexion s'etablie. Une question: je ne peux donc pas ecouter mes propres ports avec cette methode?


 
qu'est ce que tu entends par ecouter mes propres ports ?
tu veut te connecter sur un port qui est en ecoute sur ta machine ?

n°1269987
pospos
Posté le 19-12-2005 à 15:27:00  profilanswer
 

justement pour pouvoir te connecter à ce port il faudrait que tu l'ecoute!
 
si tu fait un autre socket avec un listen sur ce port (et donc plutot le tout en TCP) ca marchera. Et tu aura la joie de pouvoir communiquer avec toi meme. Donne nous de tes nouvelles quand tu en aura

n°1270779
Danjer
Posté le 20-12-2005 à 15:05:15  profilanswer
 

matthieu5978 a écrit :

Bonjour à toutes et tous
 

Code :
  1. use IO::Socket;
  2. $socket= IO::Socket::INET->new
  3. (
  4. PeerAddr => 'localhost',
  5. PeerPort => 4672,
  6. Proto    => "UDP",
  7. Type     => SOCK_STREAM
  8. )or die "impossible d'ouvrir le port.\n";
  9. $answer=<$socket>;
  10. print $answer;


 
je ne sais pas pourquoi mais quelque soit la configuration (port et url) mon programme me sort "impossible d'ouvrir le port" et mon  firewall ne reagit meme pas (il ne doit donc pas etre sollicité).


 
 
Salut,
 Le fond de ton probleme c'est surtout les parametres que tu mets pour IO::Socket::INET. Client ou Server ? Si tu utilise les mots clefs "Peer", tu fais un client. Si tu utilise les mots clefs Local, tu fais un serveur (je shematise, c'est pas vrai du tout :non:). En perl, tout est fait pour etre simple : Pas besoin d'en rajouter pour faire "cool". :sol:
 
Server.pl :

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use IO::Socket::INET;
  4. my $sock = IO::Socket::INET->new(LocalPort  => 4672,
  5.     Proto     => 'udp'
  6.    )
  7.                                         or die "Can't bind : $@\n";
  8. print "server up\n";
  9. while (<$sock> ) {
  10.   print;
  11. }


Client.pl :

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use IO::Socket::INET;
  4. my $sock = IO::Socket::INET->new(PeerPort  => 4672,
  5.                                             PeerAddr  => 'localhost',
  6.                                             Proto     => 'udp',
  7.    )
  8.                                         or die "Can't bind : $@\n";
  9. while (<> ) {
  10.   $sock->send($_);
  11. }



---------------
Cdl, Danjer
n°1276795
matthieu59​78
Posté le 04-01-2006 à 12:27:30  profilanswer
 

merci à tous


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [socket en perl] ecouter un port sur son pc

 

Sujets relatifs
[socket] plantage sur les specifications du socket sous linux en C++[C et Linux]: Prog port serie
Socket ICSpb pour scanner port
savoir si une socket C est encore connectéePb Socket et fichier
problème de portpb de redirection en perl
port parallèle Linux (Debian)Mode texte et question sur les socket.
Plus de sujets relatifs à : [socket en perl] ecouter un port sur son pc


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR