Bonjour tout le monde,
J'aimerais faire une application sous delphi6 afin de pouvoir transmettre via des sockets plusieurs type de donnée(bool,string et integer) et afficher leur résultat.
Pour cela j'ai décidé de stocker toutes ces données dans un tableau de VARIANT et de faire le transfert via la fonction sendbuf.
J'ai essayé l'exemple suivant sans savoir si cétait vraiment possible mais lorsque j'effectue le transfert, il m'affiche une fenêtre d'erreur à la réception "Argument incorrect "
- à l'émission :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.Button2Click(Sender: TObject); var tab1 : Variant; begin tab1 :=VarArrayCreate([1,3],varVariant); tab1[1]:=d1; // d1 : boolean tab1[2]:=d2; // d2 : Integer tab1[3]:=d3; // d3 : string ClientSocket1.Socket.SendBuf(tab1,27); // taille connue : 27 end;- à la réception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var tab2 : Variant; begin tab2 :=VarArrayCreate([1,3],varVariant); Socket.ReceiveBuf(tab2,27); if tab2[1] Then RadioButton1.Checked := True else RadioButton2.Checked := True; Edit2.Text := intToStr(tab2[2]); Edit3.Text := tab2[3]; end;
Quelqu'un pourrait m'aider svp![]()
Partager