Ver Mensaje Individual
  #5  
Antiguo 11-11-2012
mosco mosco is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 20
Reputación: 0
mosco Va por buen camino
Exacto Casimiro, son dos tuberias (pipes) que creo para comunicarme con un servidor (router) y los procesos de enviar y recibir son los siguientes:

Código Delphi [-]
procedure EnviaDatos(Cadena: string);
var
  i: integer;
  begin
    for i:= 1 to length(Cadena) do
      begin
        buf[i-1]:= Cadena[i];
        buf[length(Cadena)]:= #13; // Añadimos "intro" para que el comando se introduzca
      end;  
    WriteFile(write_stdin,
              buf,
              length(Cadena)+1,
              bread,
              Nil);
  end;

procedure RecibeDatos;
  Begin
    BorraBuffer;
    sleep(100);
    PeekNamedPipe(read_stdout,@buf,BUFFERSIZE-1,@bread,@avail,NiL);
    // Chequear si hay datos para leer en stdout
    if (avail <> 0) then
      Begin
        ReadFile(read_stdout,
                 buf,
                 BUFFERSIZE,
                 bread,
                 Nil);
        FuerzaSenial:= StrToInt(buf[bread-20] + buf[bread-19]);
        DatosConConexion:= 1;
      end
    else
      begin
        DatosConConexion:= 0;
        showmessage('No hay conexion establecida');
      end
  end;

Se crean las dos pipes para enviar y recibir datos y las mantengo abiertas hasta que salgo del programa. Cuando salgo cierro todos los handles.
Puedo poner el codigo completo de las dos unidades que componen el programa pero me parece un poco extenso.
Responder Con Cita