PDA

Ver la Versión Completa : Comunicación entre dos computadoras mediante puerto paralelo


Edy_A
12-06-2003, 05:50:24
Hola , necesito realizar un programa que permita comunicarme entre dos computadoras utilizando el puerto paralelo, he buscado información en el internet de como realizarlo, pero solo he encontrado información técnica :confused: y casi nada sobre programación (y eso solo en otros lenguajes menos Delphi :mad: ).

Mi programa debería poder enviar y recibir un archivo, texto o imágenes (cualquiera sirve :p ).

Si me pueden ayudar les agradecería toda mi vida.:D

José Luis Garcí
12-06-2003, 10:55:16
Si no recuerd mal en el antiguo for hay un tema muy relacionado, echake un vistazo, si no consigues nada vete a www.DelphiSPirit.com y en uno de us apartados tiene varios componentes para comunicar ordenadores mediante los puertos, agunos con ejmplo.

De todas maneras, hay programas frreware que hacen esto, por que no te los bajas, les haces una yama desde tu programa y te ahorras un monton de quebraderos de cabeza.

Un saludo desde Canarias.

delphi.com.ar
13-06-2003, 17:06:26
Te recomiendo leer este Link, aunque hable del puerto serial, creo que te puede servir.
http://www.clubdelphi.com/foros/showthread.php?s=&threadid=863&highlight=cable


Saludos!

Edy_A
19-06-2003, 09:16:41
Gracias por la ayuda, pero ahora tengo otro problema.

Tengo en siguiente codigo, que encontre para enviar datos:

procedure TForm1.BtnEnviar(Sender: TObject);
const
NombrePuerto = 'LPT1'; // Puerto paralelo
var
Form1: TForm1;
HandlePuerto: THandle; // Manejador para el puerto
Cadena: String; // Para leer del puerto una cadena de caracteres
dwValor: DWORD; // Tamaño de la lectura
Sta: COMSTAT; // Estado o tamaño del buffer de lectura
bResult: Boolean; // Parámetro de resultado
begin
// Escribir en el puerto
HandlePuerto := Windows.CreateFile(
PChar(NombrePuerto), { Nombre del puerto }
GENERIC_READ or
GENERIC_WRITE, { Modo de apertura: Lectura/Escritura }
0, { Acceso exclusivo }
nil, { Sin atributos de seguridad }
OPEN_EXISTING, { El puerto debe existir }
0, { Sin solapamiento de Lectura/Escritura }
0); { No hay "hTemplate" }
// Comprobar que la apertura ha sido correcta
if (INVALID_HANDLE_VALUE <> HandlePuerto) then
begin
Cadena := Edit1.text + #13#10; //almaceno el contenido de un edit para enviarlo
if (Windows.WriteFile(
HandlePuerto, { Handle del puerto }
PChar(Cadena)^, { Datos a escribir }
Length(Cadena), { Longitud de los datos }
dwValor, { Número de caracteres escritos }
nil) { Sin solapamiento de lecturas/escrituras }
)
then
begin
// la 'Cadena' se ha escrito en el puerto. Podemos comprobarlo si
// miramos 'dwValor' ya que debe ser igual a 'Length(Cadena)'.
// Si no lo es, algo ha ido mal.
end;
end;
Windows.CloseHandle(HandlePuerto); //cerrar puerto
end;

Bueno lo que pasa es que al correr el programa y tratar de enviar algo, el programa se queda muerto, no responde y toca resetearlo.

Lo corrí pasa a paso y va bien hasta que llega a la instrucción Windows.WriteFile en ese momento queda muerto.

De antemano gracias nuevamente

delphi.com.ar
19-06-2003, 17:02:20
Bueno, recuerdo que me ha pasado lo que tu cuentas en un Win9x, pero funcionaba en un NT.

Se que esto no es una solución, pero es un dato.

Saludos!