AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi UDP-Query an einen Gameserver mit Indy UDP-Client
Thema durchsuchen
Ansicht
Themen-Optionen

UDP-Query an einen Gameserver mit Indy UDP-Client

Ein Thema von Berserker · begonnen am 28. Mär 2008 · letzter Beitrag vom 30. Mär 2008
Antwort Antwort
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#1

UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 28. Mär 2008, 12:59
Servus.

Ich versuche gerade einen Query an unseren Gameserver zu senden.
Funktioniert auch Prima und ich bekomme auch Daten zurück.

Wenn nun aber 20 oder mehr Spieler auf dem Server sind fehlen Daten, da ich nur 2047 Bytes zurückbekomme, oder ich verfolge einen falschen Lösungsweg.

Aktueller Code zur Abfrage:

Delphi-Quellcode:
procedure TfrmMAIN.btnQueryClick(Sender: TObject);
var Buffer: Array [0..2047] of Byte ;
    i, j: integer;
    strTemp: string;
    str1: string;
    readAgain: boolean;
begin
  UDPClient1.Active := true;
  UDPClient1.BufferSize := 16384;
  UDPClient1.Send('\\basic\info');
  UDPClient1.ReceiveBuffer( Buffer, 8192);
  j := 0;
  for i := 0 to length(Buffer) do begin
    str1 := Char(Buffer[i]);
    strTemp := strTemp + str1;
  end;
  UDPClient1.Active := false;
  Memo1.Lines.Text := strTemp;
end;
Für Lösungen wäre ich dankbar.

MfG, Ronny
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#2

Re: UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 28. Mär 2008, 13:13
Was ich schon versucht habe ist dies:

var Buffer: Array [0..4096] of Byte ; Dies brachte jedoch nicht den gewünschten erfolg.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 28. Mär 2008, 13:24
Also das passt ja garnicht du will 8192 Byte Empfange und hast nur ein Puffer für 4096

UDPClient1.ReceiveBuffer( Buffer, 4096); ist besser oder den Puffer Erhöhen
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#4

Re: UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 29. Mär 2008, 21:22
Also irgendwie bringt dies auch nicht den gewünschten Erfolg.

Ich habe jetzt folgendes geändert:

Delphi-Quellcode:
var Buffer: Array [0..8192] of Byte ;

begin

  UDPClient1.Port := 1717; // GameQueryPort
  UDPClient1.Active := true;
  UDPClient1.BufferSize := 8192;
  UDPClient1.Send('\\status\\');
  UDPClient1.ReceiveBuffer( Buffer, 8192);
  j := 0;
  for i := 0 to length(Buffer) do begin
    str1 := Char(Buffer[i]);
    strTemp := strTemp + str1;
  end;
  UDPClient1.Active := false;
  Memo1.Lines.Text := strTemp;

...
end;
Ich bekomme 2048 Byte daten zurück und dann nur noch Salat.
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#5

Re: UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 30. Mär 2008, 20:06
Also nach einigem Google'n habe ich nun herausgefunden das der UDPServer für jedes Paket (laut Doku) einmal den UDPRead Event auslöst.

Jedesmal liest das also 2048 Bytes an Daten.
Nur tut er dies bei mir nur einmal.

Wieso habe ich aber nicht herausbekommen können.
Falls von euch jemand eine Idee hat wäre ich dankbar.

MfG, Ronny
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 30. Mär 2008, 20:11
Um was für einen Server handelt es sich denn?
Was sagt dessen Doku?
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#7

Re: UDP-Query an einen Gameserver mit Indy UDP-Client

  Alt 30. Mär 2008, 20:19
Der Server an den ich den Befehl sende ist ein Americas Army Spieleserver.
Es kommen ja auch daten zurück aber halt nur 2048 Bytes.

Ich vermute mal das ist ein Paket.
Nur die lese ich die weiteren Pakete die noch kommen?

UDP ist für mich halt Neuland.

MFG, Ronny
  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 21:19 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