![]() |
Indy UDPClient antwort des Servers zu groß
:cry: Hallo liebe Community,
ich möchte es schnell auf den Punkt bringen. Es soll via IdUDPClient eine Spielerliste von einem COD4 Server geholt werden. Dies habe ich folgendermaßen gelöst:
Delphi-Quellcode:
Nur endet die Liste bei Spieler 9 von 42. Ich vermute mal, dass das Paket irgendwie zu groß ist.
IdUDPClient2.Host := Label6.Caption;
IdUDPClient2.Port := strtoint(Label3.Caption); IdUDPClient2.Active := true; IdUDPClient2.Send(pb_senden); Servermsg := IdUDPClient2.ReceiveString(4096); IdUDPClient2.Active := false; Habe schon versucht bei ReceiveString die bytes zu vergrößern, doch ohne Erfolg. Wie kann ich denn nun die gesammte Liste abfragen??? :cry: P.s. ein ähnliches Thema habe ich hier gefunden: ![]() :cry: :cry: |
Re: Indy UDPClient antwort des Servers zu groß
Hi!
Im Netzwerk gibt es eine maximale Paketgröße, z.B. bei Ethernet 1508 Bytes, von denen dann noch einige Bytes für das Netzwerkprotokoll abgezogen wird (Absenderadresse, Zieladresse, Typ etc). Laut einer kleinen Google-Suche jetzt gerade ebend, werden Pakete fragmentiert (das hat nichts mit Quake zu tun), wenn man versucht über UDP Datenpakete zu verschicken, die größer sind als diese maximale Paketgröße. Solche 'fragmented packets' werden oftmals von Firewalls abgewiesen. Sinnvoll wäre es, die Daten in 1400-Bytes-Häppchen zu verschicken. Kann aber auch sein, dass der Fehler ganz woanders liegt. Gruß, SirTwist |
Re: Indy UDPClient antwort des Servers zu groß
Ja,
aber das müsste dann doch theoretisch 1 Paket sein. Also muss man ja irgendwie das 2. auch empfangen können... Gruß Bene |
Re: Indy UDPClient antwort des Servers zu groß
ruf doch einfach
IdUDPClient2.ReceiveString so lange auf bis es nichts mehr zurueckliefert. [edit] Der parameter von Receivestring gibt doch den timeout und nicht die Paketgroesse oder irre ich mich? [/edit] |
Re: Indy UDPClient antwort des Servers zu groß
Genial,
das war die Lösung^^ Warum bin ich da nicht drauf gekommen... :oops: Vielen vielen Dank P.s. stimmt der Parameter ist fürs Timeout... :lol: |
Re: Indy UDPClient antwort des Servers zu groß
bitte.
viel spass noch damit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz