Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem mit Gameserverabfrage (https://www.delphipraxis.net/80568-problem-mit-gameserverabfrage.html)

Mr.H. 11. Nov 2006 10:29


Problem mit Gameserverabfrage
 
hi :)

ich habe folgendes Problem!

Ich hab ein Programm geschrieben mit dem ich Befehle an einen Gameserver schicke und Antworten zurück bekomme!!

Aber mein Problem ist, wenn i Abfrage wer auf dem Server ist bekomm ich nur einen Teil der Spieler in der Antwort ...

Delphi-Quellcode:
UDPClient.Send(ip, port, befehl);
ReceivedString := UDPClient.ReceiveString(-1);
Befehl = "ÿÿÿÿrcon passwort status"

Der empfangene Text:

Zitat:

map: mp_toujane
num score ping guid name lastmsg address qport rate
--- ----- ---- ------ --------------- ------- --------------------- ----- -----
2 23 68 369279 |RFV|^3casualty^9#688^7 50 85.128.6.214:28960 2217 25000
3 34 227 528096 krik^7 0 212.122.31.3:-22766 3277 25000
4 8 170 623577 xxx^7 0 83.237.48.166:28960 4781 25000
5 48 116 679042 blau division(ESP)^7 0 217.125.156.216:12608 4235 25000
6 24 96 141217 ^^00[SFG]^^11MasterM.^7 0 84.132.244.155:-2862 1699 25000
7 37 106 268379 Cpt_Escorial^7 0 195.4.38.124:28960 2674 25000
8 37 140 600675 el fouino^7 50 84.7.63.73:28960 2742 25000
9 21 48 328744 Sjorrus°nl^7 0 82.168.243.205:26080 2869 25000
10 0 77 350371 ^4[^1W^4c^1W^4] ^1The^4Champion^7 0 84.136.111.193:-910 2005 25000
11 17 134 869585 Mx [PL]^7 0 83.29.41.135:28960 3415 5000
12 30 170 719104 ^4Aces^7-[Rflman]-^4lDaGaDl^7 50 89.210.100.66:-3808 1612 25000
13 47 239 528096 Skazochnik^7 0 212.122.31.3:-22750 2681 25000
14 24 214 115036 Dokie Stik^7 0 71.133.170.237:-30544 53787 25000
Auf dem Server sind aber 21 Leute zu dem Zeitpunkt!


Schonmal THX ;)


[edit] Es geht um das Spiel CoD2 [/edit]

Mr.H. 14. Dez 2006 13:45

Re: Problem mit Gameserverabfrage
 
schade das mir niemand helfen kann :(

trotzdem danke :)

mfg Mr.H.

Bernhard Geyer 14. Dez 2006 13:52

Re: Problem mit Gameserverabfrage
 
Schon mal kontrolliert ob die Antwort in mehrern Paketen kommt und Du nur das erste auswertest?

marabu 14. Dez 2006 14:23

Re: Problem mit Gameserverabfrage
 
Herzlich willkommen in der Delphi-PRAXiS, Mr.H.

Wenn auf dem Server wirklich 21 Spieler sind und deine UDP-Komponente mit 1024-Byte Paketen arbeitet, dann liegt Bernhard mit seinem Verdacht genau richtig. Es wäre offensichtlicher, wenn die 1024 Byte Grenze nicht genau in ein Zeilenende fallen würde.

Freundliche Grüße vom marabu

Mr.H. 14. Dez 2006 16:51

Re: Problem mit Gameserverabfrage
 
ok danke erstmal für die antwort ...

aber wie kann ich dann, wenn es mehrere pakete sind, alle empfangen??

Oder gibts noch eine andere Lösung ??

MfG Mr.H. :mrgreen:

marabu 14. Dez 2006 17:54

Re: Problem mit Gameserverabfrage
 
Hi,

alle Pakete könntest du vielleicht so empfangen:

Delphi-Quellcode:
var
  s: String;
begin
  // ...
  Memo.Clear;
  repeat
    s := UDPClient.ReceiveString();
    if s <> '' then
      Memo.Text := Memo.Text + s;
  until s = '';
end;
Setze vorher BufferSize und ReceiveTimeOut deines UDPClient auf einen dir genehmen Wert. Beim UDP-Protokoll ist es wie mit einem Rendezvous - du wartest solange du Hoffnung hast.

Zitat:

Zitat von Mr.H.
Oder gibts noch eine andere Lösung ?

Alternativ kannst du auch nur das erste Paket lesen - eine Lösung dafür hast du ja schon selbst entwickelt...

Freundliche Grüße

Mr.H. 15. Dez 2006 13:19

Re: Problem mit Gameserverabfrage
 
ok ... Danke :mrgreen:

es scheint auch soweit zu funktionieren :) hät i aber auch selbst drauf kommen könn dort ne schleife zu machen -.-

mfg Mr.H.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 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