Investigué y construí con el módulo Tk una ventana con una etiqueta o label y dos botones aceptar y cancelar.
En la etiqueta recibiré lo que reciba el socket y lo mostraré en la ventana. El problema es que el socket recibe la información y la muestra en la pantalla negra del MS-DOS y no en la ventana.
De hecho la ventana no se despliega. No se observa y no veo cual puede ser el problema.
Este es el código del receptor modificado para que muestre información recibida por el socket en la ventana.
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use Tk;
use IO::Socket;
use Net::hostent;
my $mw=MainWindow->new;
$mw->minsize(200,100);
$mw->title("AVISO!!");
my $server=IO::Socket::INET->new(Proto=>"tcp",LocalPort=>"5800",Listen=>"1");
#die "no puede configurar servidor" unless $server;
#print "Server $0 aceptando clientes";
while($cliente=$server->accept()){
$cliente->autoflush(1);
while(defined($line=<$cliente>)){
#print $line;
$mw->Label(-text=>"$line")->pack;
$mw->Button(-text=>Aceptar,-command=>sub{},-width=>10,-height=>1.90)->pack(-side=>'left',-padx=>15);
$mw->Button(-text=>Cancelar,-command=>sub{exit},-width=>10,-height=>1.90)->pack(-side=>'left',-padx=>15);
MainLoop;
}
close $server;
}
use Tk;
use IO::Socket;
use Net::hostent;
my $mw=MainWindow->new;
$mw->minsize(200,100);
$mw->title("AVISO!!");
my $server=IO::Socket::INET->new(Proto=>"tcp",LocalPort=>"5800",Listen=>"1");
#die "no puede configurar servidor" unless $server;
#print "Server $0 aceptando clientes";
while($cliente=$server->accept()){
$cliente->autoflush(1);
while(defined($line=<$cliente>)){
#print $line;
$mw->Label(-text=>"$line")->pack;
$mw->Button(-text=>Aceptar,-command=>sub{},-width=>10,-height=>1.90)->pack(-side=>'left',-padx=>15);
$mw->Button(-text=>Cancelar,-command=>sub{exit},-width=>10,-height=>1.90)->pack(-side=>'left',-padx=>15);
MainLoop;
}
close $server;
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4