Não sei exatamente como o operador <> procede mas ME PARECE que se for igual arquivo, ele estará esperando uma linha, ou seja, um \n no stream de input antes de retornar.<div><br></div><div>Sugiro vc tentar com read() ou recv()...</div>
<div><br></div><div>Outra sugestão é usar um select para seu programa não ficar travado caso o outro lado falhe, o que costuma ser comum.</div><div><br></div><div>Abraços,</div><div>GB<br><br><div class="gmail_quote">2010/6/29 Oscar Marques <span dir="ltr"><<a href="mailto:oscarbm@gmail.com">oscarbm@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Senhores (as).<br><br>Boa tarde!<br>Estou com uma duvida.<br><br>Tenho o seguinte codigo:<br><br>===<br><br>#!/usr/bin/perl<br>
<br>my $VERSAO = '0.1';<br><br>$SIG{'INT'} = 'IGNORE';<br>$SIG{'HUP'} = 'IGNORE';<br>
$SIG{'TERM'} = 'IGNORE';<br>$SIG{'CHLD'} = 'IGNORE';<br>$SIG{'PS'} = 'IGNORE';<br><br># Remote reboot.<br>my $payload1 = ("\x05" . "\x00" x 7);<br><br># Retrieving Wi-Fi SSID<br>
# cleartext SSID displayed after "21 27 xx xx" in the received datagram.<br>my $payload2 = ("\x03" . "\x00" x 7 . "\x21\x27\x00");<br><br># Retrieving WPA2 PSK<br># cleartext WPA2 PSK displayed after "24 27 xx xx" in the received datagram.<br>
my $payload3 = ("\x03" . "\x00" x 7 . "\x23\x27\x00\x00\x24\x27\x00");<br><br>my $hostname = @ARGV[0];<br>my $port = @ARGV[1];<br>my $type = @ARGV[2];<br><br>my $msg = "";<br> <br>
sub banner {<br>
print ("");<br>}<br><br>banner();<br><br>use strict;<br>use IO::Socket;<br><br>my $sock = new IO::Socket::INET (<br>PeerAddr => $hostname,<br>PeerPort => $port,<br>Proto => 'tcp',<br>);<br>die "[x] Error: $!\n" unless $sock;<br>
<br>if ($type eq "1") {<br> print $sock $payload1;<br> print "[+] Rebooting\n";<br> my $buf = '';<br> while (defined($buf = <$sock>)) {<br> print $buf;<br>}<br><br> } elsif ($type eq "2") {<br>
print $sock $payload2;<br> print "[+] Retrieving Wi-Fi SSID\n"<br> } elsif ($type eq "3") {<br> print $sock $payload3;<br> print "[+] Retrieving WPA2 PSK\n"<br> } else {<br> printf "\n [x] Invalid Option ...\n\n";<br>
banner();<br> }<br> close($sock);<br> exit(1);<br><br>===<br><br>Gostaria de mostar a resposta do Socket na tela (STDOUT).<br><br> my $buf = '';<br>
while (defined($buf = <$sock>)) {<br>
print $buf;<br>
<br><br>Como proceder?<br>Tentei aqui e não consigo mostrar a mensagem.<br>Grato Monges!<br>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br></div>