Entwickler-Ecke

Internet / Netzwerk - Doppelter Empfang/Send bei IdUdp


MarkusD - Do 14.06.07 15:25
Titel: Doppelter Empfang/Send bei IdUdp
Moin,


also ich versuche hier gerade die IPs von Servern im Netz zu verschicken. Es handelt sich um ein Spiel, wenn man auf nen Server Connecten will, Broadcastet der seine IP und alle Server antworten dann.

Client:

IdUDPServer (Port 10026)
IdUDPClient (Port 10025, BroadcastEnabled = True)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
//Suche starten
IdUDPClient1.Broadcast(meineip, 10025);

procedure IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
begin
  ListBox1.Items.Add(Copy(BytesToString(Adata), 0, length(Adata)));
end;


Server:

IdUDPClient (Port 10026)
IdUDPServer (Port 10025, BroadcastEnabled = True)



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
var
  ip: string;
begin
  ip := Copy(BytesToString(Adata), 0, length(Adata));
  with IdUDPClient1 do
  begin
    Host := ip;
    Active := true;
    Send(ip, 10026, IdIPWatch1.CurrentIP);
    Active := false;
  end;
end;


Wenn ich jetzt die Suche starte (ich starte sie nur einmal), bekomme ich 2 Mal eine antwort.
Ich rufe IdUDPClient1.Broadcast(meineip, 10025); im Client nur einmal auf, im Server Receive ich aber 2 Mal die Message mit der Ip.

Woran kann das liegen?


Markus.


MarkusD - Do 14.06.07 15:42

Fehler gefunden. Es lag nicht am Code sondern ich hatte mehrere Netzwerkverbinungen aktiviert.