Erstmal ein Hallo, da ich ja neu hier bin!
Ich lerne seit kurzem Delphi 7. Und da ich am besten lerne, wenn ich einfach ausprobiere, hab ich mich gleich mal daran gewagt ein kleine Programm zu schreiben, was mir die Serverdaten von einem Half-Life server abfragt.
Bis jetzt hab ich durch lesen hier und in anderen Foren mir folgenden Code zusammengebastelt.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, XPMan;
type
TIdSocketHandle = THandle;
type
TForm1 =
class(TForm)
IdUDPClient1: TIdUDPClient;
IdUDPServer1: TIdUDPServer;
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
XPManifest1: TXPManifest;
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var x:
string;
begin
AData.Position:=0;
SetLength(x,AData.Size);
AData.ReadBuffer(x[1],AData.Size);
memo1.Lines.Add(x)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send('
255.255.255.255',27015,'
ÿÿÿÿTSource Engine Query')
//<-----Diesen befehl muß amn an den Server senden!!;
end;
end.
Allerdings wird kein UDPRead Ereigniss ausgelöst, obwohl ich vom Server eine Antwort erhalte. Das hab ich mit Sniff'em überprüft.
Wenn ich das ganze über den Port 32 oder 33 mach, dann wird ein UDPRead ausgelöst und in meinem Memo1 habe ich die abgeschickte nachricht stehen.
Danke schonmal für eure Hilfe!!
[edit=alcaeus]"[Hilfe]" aus dem Titel entfernt. Mfg, alcaeus[/edit]