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