hola buenas actualmente estoy usando los indy en version 10.5.7, previamente habia desarrollado una aplicacion cliente y una servidor con TcpClient y TcpServer pues en mi version indy 9 corre todo bien, pero en en el paso a la version 10.5.7 tengo problemas leyendo y escribiendo mensajes.
ANTES
//leer comandos ejcutados
procedure TClienteHilo.Execute;
begin
while not Terminated do
if not FrmTablero.tcpClient.Connected then
Terminate
else
try //leer buffer de mensajes
FrmTablero.tcpClient.ReadBuffer(Paquete, SizeOf (Paquete));
Synchronize(HandleInput);//mostrar mensaje en la terminal
except
if FrmTablero<>nil then
FrmTablero.Terminal.Lines.Add('<'+Formatdatetime('HH:mm:ss',Time)+' - '+FormConexion.tNomUsuario.Text+'> Dice: No se pueden enviar mensajes. La conexión con el servidor ha fallado.');
end;
end;
DE ACUERDO A LO QUE HE LEIDO EN INDY 10 DEBE SER
procedure TClienteHilo.Execute;
Var
RxBuf : TIdBytes;
begin
while not Terminated do
if not FrmTablero.tcpClient.Connected then
Terminate
else
try //leer buffer de mensajes
FrmTablero.tcpClient.IOHandler.ReadBytes(RxBuf, SizeOf (Paquete));
BytesToRaw(RxBuf,Paquete, SizeOf (Paquete));
Synchronize(HandleInput);//mostrar mensaje en la terminal
except
if FrmTablero<>nil then
FrmTablero.Terminal.Lines.Add('<'+Formatdatetime('HH:mm:ss',Time)+' - '+FrmConexion.tNomUsuario.Text+'> Dice: No se pueden enviar mensajes. La conexión con el servidor ha fallado.');
end;
end;
No si esto funcione dado que al compilar me envia:
[DCC Error] UFrmTablero.pas(341): E2003 Undeclared identifier: 'TIdBytes'
[DCC Error] UFrmTablero.pas(349): E2003 Undeclared identifier: 'BytesToRaw'
he buscado el equivalennte a 'TIdBytes' y 'BytesToRaw' pero nada, si alguien tiene una solucion aplicada agradeceria su ayuda..