Einzelnen Beitrag anzeigen

wayne312

Registriert seit: 11. Jul 2009
27 Beiträge
 
#1

TidUDPClient will nicht...

  Alt 11. Sep 2009, 12:01
Hallo leute,

ich habe im Moment ein Problem mit dem UDPClient von den Indy Kompos....
hier ist mein Code :

Delphi-Quellcode:
unit RecInfoServer;

interface
  uses Forms, StrUtils, SysUtils, Classes, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient;


type
  ReadInfoServer = class
  private
    idUDPClient1: TidUDPClient;
  public
    Constructor Create(ServerIP: string; ServerPort: Word);
    Destructor Destroy;
    Function GetServerName : String;
    Function GetServerMap : String;
  end;

implementation

//Constructor und Destructor ---------------------------------------------------
Constructor ReadInfoServer.Create (ServerIP: string; ServerPort: Word);
begin
 idUDPClient1 := TidUDPClient.Create(); // Genau hier kommt die Meldung
  with idUDPClient1 do begin
    Host := ServerIP;
    Port := ServerPort;
  end;
end;

Destructor ReadInfoServer.Destroy;
begin
  idUDPClient1.Disconnect;
  idUDPClient1.Free;
end;

//GetServerName ----------------------------------------------------------------
Function ReadInfoServer.GetServerName : String;
var
Name : String;
begin
  try
    idUDPClient1.Connect;
      if idUDPClient1.Connected then begin
        idUDPClient1.Send('˙˙˙˙TSource Engine Query');
        Name := idUDPClient1.ReceiveString;
      end;
  finally
    result := Name;
    idUDPClient1.Disconnect;
  end;
end;

//GetServerMap -----------------------------------------------------------------
Function ReadInfoServer.GetServerMap : String;
var
Map : String;
Stream1 : TMemoryStream;
PacketSz: integer;
RecPack : TBytes;
begin
  try
    idUDPClient1.Connect;
    Stream1 := TMemoryStream.Create;
     if idUDPClient1.Connected then begin
       idUDPClient1.Send('˙˙˙˙TSource Engine Query');
       PacketSz:=idUDPClient1.ReceiveBuffer(RecPack);
     end;
  finally
   Stream1.WriteBuffer(RecPack,PacketSz);
  end;
end;

end.
Sobalt er die fehlerhafte Zeile erreicht hat bekomme ich Folgende Meldung :
Code:
Zugriffsverletzung bei Adresse 00539A56 in Modul 'Projekt1.exe'. Schreiben von Adresse 00000004
Ich erkenne dort kein Fehler...

mfg
  Mit Zitat antworten Zitat