AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy UDPClient antwort des Servers zu groß
Thema durchsuchen
Ansicht
Themen-Optionen

Indy UDPClient antwort des Servers zu groß

Ein Thema von benedikt124 · begonnen am 3. Nov 2008 · letzter Beitrag vom 4. Nov 2008
Antwort Antwort
benedikt124

Registriert seit: 12. Mai 2008
22 Beiträge
 
#1

Indy UDPClient antwort des Servers zu groß

  Alt 3. Nov 2008, 16:54
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:
IdUDPClient2.Host := Label6.Caption;
IdUDPClient2.Port := strtoint(Label3.Caption);
IdUDPClient2.Active := true;
IdUDPClient2.Send(pb_senden);

Servermsg := IdUDPClient2.ReceiveString(4096);
IdUDPClient2.Active := false;
Nur endet die Liste bei Spieler 9 von 42. Ich vermute mal, dass das Paket irgendwie zu groß ist.
Habe schon versucht bei ReceiveString die bytes zu vergrößern, doch ohne Erfolg.

Wie kann ich denn nun die gesammte Liste abfragen???

P.s. ein ähnliches Thema habe ich hier gefunden: http://www.delphipraxis.net/internal...t.php?t=131520. Hat mir aber nicht weitergeholfen...

  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#2

Re: Indy UDPClient antwort des Servers zu groß

  Alt 3. Nov 2008, 22:00
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
  Mit Zitat antworten Zitat
benedikt124

Registriert seit: 12. Mai 2008
22 Beiträge
 
#3

Re: Indy UDPClient antwort des Servers zu groß

  Alt 4. Nov 2008, 12:32
Ja,

aber das müsste dann doch theoretisch 1 Paket sein. Also muss man ja irgendwie das 2. auch empfangen
können...

Gruß

Bene
  Mit Zitat antworten Zitat
Volle

Registriert seit: 25. Nov 2003
Ort: Stuttgart
100 Beiträge
 
Delphi 7 Personal
 
#4

Re: Indy UDPClient antwort des Servers zu groß

  Alt 4. Nov 2008, 12:57
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]
cYa n' sTay [ S ! C ]
  Mit Zitat antworten Zitat
benedikt124

Registriert seit: 12. Mai 2008
22 Beiträge
 
#5

Re: Indy UDPClient antwort des Servers zu groß

  Alt 4. Nov 2008, 13:12
Genial,

das war die Lösung^^ Warum bin ich da nicht drauf gekommen...

Vielen vielen Dank

P.s. stimmt der Parameter ist fürs Timeout...
  Mit Zitat antworten Zitat
Volle

Registriert seit: 25. Nov 2003
Ort: Stuttgart
100 Beiträge
 
Delphi 7 Personal
 
#6

Re: Indy UDPClient antwort des Servers zu groß

  Alt 4. Nov 2008, 13:13
bitte.

viel spass noch damit.
cYa n' sTay [ S ! C ]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz