Estoy intentando enviar datos (hexadecimales) desde un microcontrolador conectado a un dispositivo (Digione SP) por una entrada serie. Este dispositivo tiene una salida ethernet la cual está conectada a un enrutador que le asigna una IP.
En un servidor conectado al enrutador tengo el siguiente código para crear un socket TCP que quede escuchando.
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- use IO::Socket;
- my $server = IO::Socket::INET->new(
- Proto => 'tcp',
- LocalPort => 5800,
- Listen => 1,
- Reuse => 1,
- );
- die "No puedo configurar servidor" unless $server;
- print "Server $0 aceptando clientes...\n";
- $|++;
- while( $cliente = $server->accept() ) {
- $cliente->autoflush(1);
- print "Conectado cliente";
- while( defined( $line = <$cliente> ) ) {
- print $line;
- }
- close $cliente;
- }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
en tanto el dispositivo (DigiOne) lo configuro como un cliente TCP que se conecta al servidor.
El asunto es que cuando se conecta el DigiOne establece conexión con el servidor pero después, a medida que voy enviando datos desde el microcontrolador, me tira basura, y no los datos hexadecimales.
Probé creando un script cliente que enviara datos al socket (como está en los ejemplos de este foro) y los envía bien, pero no así cuando uso el DigiOne como cliente.
Ojalá se entienda.
Gracias de antemano.