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