Não sei exatamente como o operador &lt;&gt; 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">&lt;<a href="mailto:oscarbm@gmail.com">oscarbm@gmail.com</a>&gt;</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 = &#39;0.1&#39;;<br><br>$SIG{&#39;INT&#39;} = &#39;IGNORE&#39;;<br>$SIG{&#39;HUP&#39;} = &#39;IGNORE&#39;;<br>
$SIG{&#39;TERM&#39;} = &#39;IGNORE&#39;;<br>$SIG{&#39;CHLD&#39;} = &#39;IGNORE&#39;;<br>$SIG{&#39;PS&#39;} = &#39;IGNORE&#39;;<br><br># Remote reboot.<br>my $payload1 = (&quot;\x05&quot; . &quot;\x00&quot; x 7);<br><br># Retrieving Wi-Fi SSID<br>

# cleartext SSID displayed after &quot;21 27 xx xx&quot; in the received datagram.<br>my $payload2 = (&quot;\x03&quot; . &quot;\x00&quot; x 7 . &quot;\x21\x27\x00&quot;);<br><br># Retrieving WPA2 PSK<br># cleartext WPA2 PSK displayed after &quot;24 27 xx xx&quot; in the received datagram.<br>

my $payload3 = (&quot;\x03&quot; . &quot;\x00&quot; x 7 . &quot;\x23\x27\x00\x00\x24\x27\x00&quot;);<br><br>my $hostname = @ARGV[0];<br>my $port = @ARGV[1];<br>my $type = @ARGV[2];<br><br>my $msg = &quot;&quot;;<br> <br>
sub banner {<br>
print (&quot;&quot;);<br>}<br><br>banner();<br><br>use strict;<br>use IO::Socket;<br><br>my $sock = new IO::Socket::INET (<br>PeerAddr =&gt; $hostname,<br>PeerPort =&gt; $port,<br>Proto =&gt; &#39;tcp&#39;,<br>);<br>die &quot;[x] Error: $!\n&quot; unless $sock;<br>

<br>if ($type eq &quot;1&quot;) {<br>    print $sock $payload1;<br>    print &quot;[+] Rebooting\n&quot;;<br>    my $buf = &#39;&#39;;<br>    while (defined($buf = &lt;$sock&gt;)) {<br>    print $buf;<br>}<br><br>  } elsif ($type eq &quot;2&quot;) {<br>

    print $sock $payload2;<br>    print &quot;[+] Retrieving Wi-Fi SSID\n&quot;<br>  } elsif ($type eq &quot;3&quot;) {<br>    print $sock $payload3;<br>    print &quot;[+] Retrieving WPA2 PSK\n&quot;<br>  } else {<br>    printf &quot;\n [x] Invalid Option ...\n\n&quot;;<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 = &#39;&#39;;<br>
    while (defined($buf = &lt;$sock&gt;)) {<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>