Using perl Syntax Highlighting
my $activar_seg = Gtk2::ToggleToolButton->new_from_stock('gtk-dialog-authentication');
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Using perl Syntax Highlighting
$activar_seg->signal_connect (clicked => \&ActivaS);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Using perl Syntax Highlighting
sub ActivaS{
my $togg = shift;
if ($togg->get_active) {
$hilo_seg = threads->create(
sub {
$sock = new IO::Socket::INET (
LocalHost => 'localhost',
LocalPort => 1100,
Proto => 'tcp',
Listen => 6,
Reuse => 1
);
die "No se ha podido crear el socket: $!\n" unless $sock;
print "-------------------------------------------------\n";
print "- MONITOR EN LINEA -\n";
print "-------------------------------------------------\n";
$conexion = $sock -> accept(); # Ahora aceptamos las conexiones
print "Conexion desde: ",inet_ntoa((unpack_sockaddr_in(getpeername $conexion))[1])," \n";
print $conexion "Intruso\n"; # El mensaje que le enviaremos usando print
$conexion->send("Estas muerto\n"); # Otro mensaje que enviaremos usando send
#close ($conexion);
}
);
}
else {
close ($conexion);
$hilo_seg->detach;
}
}
my $togg = shift;
if ($togg->get_active) {
$hilo_seg = threads->create(
sub {
$sock = new IO::Socket::INET (
LocalHost => 'localhost',
LocalPort => 1100,
Proto => 'tcp',
Listen => 6,
Reuse => 1
);
die "No se ha podido crear el socket: $!\n" unless $sock;
print "-------------------------------------------------\n";
print "- MONITOR EN LINEA -\n";
print "-------------------------------------------------\n";
$conexion = $sock -> accept(); # Ahora aceptamos las conexiones
print "Conexion desde: ",inet_ntoa((unpack_sockaddr_in(getpeername $conexion))[1])," \n";
print $conexion "Intruso\n"; # El mensaje que le enviaremos usando print
$conexion->send("Estas muerto\n"); # Otro mensaje que enviaremos usando send
#close ($conexion);
}
);
}
else {
close ($conexion);
$hilo_seg->detach;
}
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
El punto es que funciona cuando activo el botón.
- Código: Seleccionar todo
-------------------------------------------------
- MONITOR EN LINEA -
-------------------------------------------------
El problema es cuando desactivo el botón, me sale el siguiente error:
- Código: Seleccionar todo
-------------------------------------------------
- MONITOR EN LINEA -
-------------------------------------------------
Use of uninitialized value $conexion in ref-to-glob cast at network.pl line 347
No puedo cerrar el socket y creo que también no estoy matando el hilo.
Me podría guiar alguien sobre esta situación, cuál debería ser la forma correcta de cerrar el socket y eliminar el hilo. Por favor.
Gracias por leer.