Bonjour à Tous,
j'ai besoin d'un coup de pouce pour comprendre mon problème.
Voilà depuis Delphi (sous Windows) j'envoi via TCPServer un buffer de type Record avec le code suivant
Structure du record dans Lazarus et Delphi
Sous Lazarus (Linux) avec {$Mode Delphi}{$H+}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Type tMonRecord = Packed Record MaVar1:String[20]; MaVar2:array[0..5] of array[0..5] of String[1]; MaVar3:array[0..5] of array[0..5] of String[1]; End; Var MonRecord:^tMonRecord; Procedure .....envoi For i := 0 To Form1.ServerSocket4.Socket.ActiveConnections - 1 Do Form1.ServerSocket4.Socket.Connections[i].Sendbuf(MonRecord, Sizeof(tMonRecord)); end;
j'utilise le composant indy TidTCPclient
La structure du record est identique à la différence de ma déclaration de variable MonRecord:TMonrecord sans ^ qui provoque une erreur
Lorsque je reçois les données j'ai des caractères genre °°°°°°° qui n'on rien à voir et des carrés avec 2 chiffres en haut et en bas ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Var MonRecord:TMonrecord RecBuf:TidBytes et je réceptionne avec le code suivant Procedure .....reception idTCPClient1.socket.readBytes(Recbuf, Sizeof(tMonRecord)); BytesofRaw(RecBuf,MonRecord,Sizeof(tMonRecord)); end;
un petit coup de main serais bienvenue
Merci d'avance
Cordialement
Oscar
Partager