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; 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);
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.