Thema: Delphi Query an Gameserver

Einzelnen Beitrag anzeigen

Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#77

AW: Query an Gameserver

  Alt 25. Feb 2015, 11:20
EDIT: Frage nach der Antwort gepostet.

Hallo!

Immernoch die "nicht erreichbar" Problematik.

Mein aktueller Code um die Verbindung aufzubauen:
Delphi-Quellcode:
  form4.udp1.RemoteHost:= '5.45.97.44';
  form4.udp1.RemotePort:= '2301';
  form4.udp1.Open;

  if form4.udp1.Connected then
  begin

  form4.Udp1.SendBuf(request, SizeOf(TInfoRequest));
  form4.Udp1.ReceiveBuf(buffer, SizeOf(buffer));

  form4.udp1.WaitForData(1000);
  if Length(buffer)<1 then
  begin
   form4.udp1.Close;
   exit;
  end;
Wenn der Port korrekt ist, wird 1 Sekunde gewartet und dann der "buffer" gelesen.

Ist der Port aber kein QueryPort:
Delphi-Quellcode:
  form4.udp1.RemoteHost:= '5.45.97.44';
  form4.udp1.RemotePort:= '1111'; // Port geändert
  form4.udp1.Open;

  if form4.udp1.Connected then
  begin

  form4.Udp1.SendBuf(request, SizeOf(TInfoRequest));
  form4.Udp1.ReceiveBuf(buffer, SizeOf(buffer));

  form4.udp1.WaitForData(1000);
  if Length(buffer)<1 then
  begin
   form4.udp1.Close;
   exit;
  end;
Das Programm hängt sich auf.
Ich hab schon nachgelesen und scheinbar hängt es sich nicht wirklich auf, sondern lauscht weiterhin und wartet auf Antwort.

Ich bin auf diese Option gestoßen:
form4.udp1.BlockMode := bmNonBlocking Damit soll das angeblich funktionieren, jedoch bekomme ich dann immer die Meldung vom "OnError"-Event, dass keine Verbindung aufgebaut werden konnte.
Delphi-Quellcode:
procedure TForm4.udp1Error(Sender: TObject; SocketError: Integer);
begin
showmessage('Could not connect. The server you are trying to query might be down');
udp1.Active:= false;
end;
Irgendwelche Ideen?
Flo
  Mit Zitat antworten Zitat