Bonjour,
je cherche depuis bientôt une semaine pour tester la communication UDP.
Apparemment la manière la plus simple est d'utiliser Indy, j'ai donc installer les composants Indy, mais après plusieurs essais je n'arrive toujours pas à faire ce que je veux.
J'aimerais juste faire deux petites applications, une server et une client, de manière a échanger des infos de l'une vers l'autre. Ca doit pas être si compliqué mais je bloque. Voilà ce que j'ai fait pour le moment si quelqu'un peux m'aider Merci.
Server:
Client:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdSocketHandle, IdUDPServer, IdUDPClient; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Edit2: TEdit; IdUDPServer1: TIdUDPServer; procedure Button1Click(Sender: TObject); procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin IdUDPServer1.Bindings.Add; IdUDPServer1.Binding.IP:='123.0.0.1'; IdUDPServer1.Binding.Port:=49153; Edit2.Text:='IP:'+IdUDPServer1.Binding.IP+' Port:'+inttostr(IdUDPServer1.Binding.Port); end; procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var Line:TStringStream; begin Line.Create(''); Edit2.Text:='IP:'+ABinding.IP+' Port:'+inttostr(ABinding.Port); Line.CopyFrom(AData,AData.Size); Showmessage(Line.DataString); end; end.
Ce n'est qu'un essai bien entendu mais ça ne fonctionne pas et j'ai pas trouvé de sources convenable expliquant le dialogue UDP.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Sockets,ScktComp, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, IdUDPClient; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Edit2: TEdit; IdUDPClient1: TIdUDPClient; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin IdUDPClient1.Host:='123.0.0.1'; IdUDPClient1.Port:=49153; IdUDPClient1.Active:=true; IdUDPClient1.Send(Edit2.Text); Edit1.Text:='IP:'+IdUDPClient1.Host+' Port:'+inttostr(IdUDPClient1.Port); end; end.
Please help !!
Partager