Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Envío de records a través de sockets con Indy 10 (https://www.clubdelphi.com/foros/showthread.php?t=43318)

madrid2003_6 08-05-2007 17:47:49

Envío de records a través de sockets con Indy 10
 
buenas tardes.
Tengo un problema con una aplicacion que estoy haciendo.
Tengo una Record con 3 tipos de datos.
a : integer ;
b : integer;
c : String;
Como puedo enviar una estructura a traves de un socket? tengo que pasarlo a string?
Uso Indy10.

maxid 15-05-2007 17:28:11

espero te sirva
 
Nunca he usado sokets pero esto se hace para comunicaciones por puerto serie.
Crea una variable que apunte al registro que queres enviar y la envias como una secuencia de Byte, despues en tu receptor la distribuis en tu registro.

te aconsejo que al paquete le pongas un CRC, para controlar que llegue correcto, podes poner un lonint al final y hacer una suma de los bytes mas un shift a izq y en la recepcion un shift a la derecha y calcular la suma para ver si da ok. u otro metodo.. espero te sirva

Ejemplo

type
TRec = Record
c1:integer; // 8 bytes
c2:integer; // 8 bytes
c3:string[200]; //201 byte
end;

Var
rec: Tregistro
enviar: array [1..217]of byte absolute of rec; // creas una variable paralela a rec con lo cual al cambiar algo en rec te lo pasa a enviar como un byte

Begin

// enviar los bytes por el soket
soket1.enviar(enviar)
end;

en el receptor lo mismo

Var
rec: Tregistro
recibir: array [1..217]of byte absolute of rec;

Begin
// recibir los datos por el soket
recibir := soket1.recibir;

//en rec.c1 ya tenes tu enter listo para usar

end;

fide 07-06-2007 03:42:24

Enviar Records
 
Oye, en los demos de la Indy está visible un ejemplo que si más no recuerdo se llama SendReceiveRecords, en el cual se ilustra a la perfección como es posible enviar estas estructuras por la red.

:D Espero te sea útil… :D


La franja horaria es GMT +2. Ahora son las 00:47:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi