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:

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.
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
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.
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.

Please help !!