El socket de Perl recibe la información enviada con el socket de Java con algo de basura y la muestra en la ventana negra del MSDOS pero cuando se intenta imprimir en una ventana (GUI) la información se embasura completamente y lo que muestra es totalmente distinto a lo enviado. Envío código para que lo corran y vean que es lo está pasando. ¿Cómo puedo resolver eso?
Receptor de perl
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.003 segundos, usando GeSHi 1.0.8.4
Emisor de Java
Using java Syntax Highlighting
import java.net.*;
import java.io.*;
class servidor{
public static void main(String args[]){
try{
Socket conexion=new Socket(args[0],5800);
ObjectOutputStream salida=new ObjectOutputStream(conexion.getOutputStream());
salida.flush();
salida.writeObject("Hola mundo!");
System.out.println("Hola mundo!");
salida.flush();
salida.close();
conexion.close();
}
catch(IOException io){
System.out.println("error");
}
}
import java.io.*;
class servidor{
public static void main(String args[]){
try{
Socket conexion=new Socket(args[0],5800);
ObjectOutputStream salida=new ObjectOutputStream(conexion.getOutputStream());
salida.flush();
salida.writeObject("Hola mundo!");
System.out.println("Hola mundo!");
salida.flush();
salida.close();
conexion.close();
}
catch(IOException io){
System.out.println("error");
}
}
Coloreado en 0.012 segundos, usando GeSHi 1.0.8.4