Autor Beitrag
superchatti
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 296

Win XP, Red Hat Linux 7.3
Delphi 6 PE
BeitragVerfasst: Fr 07.11.03 23:19 
Ich würde gerne den Ping von einem BF server ermitteln und Wenn man connect sagt darauf connecten wie mache ich sowas?

_________________
mfG Superchatti
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Sa 08.11.03 14:40 
ping dürfte ja kein problem sein... die IP des servers wirst du ja kennen.... schwieriger wirds beim connecten... da brauchst du das protokoll, das BF da verwednet. und wenn das net öffentlich is, gehts nur durch reversed engineering... das wird aber heftig, sag ich dir gleich :?



MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
superchatti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 296

Win XP, Red Hat Linux 7.3
Delphi 6 PE
BeitragVerfasst: Sa 08.11.03 14:48 
wie ermittle ich den Ping denn?

_________________
mfG Superchatti
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Sa 08.11.03 14:53 
guck dir mal die Indy Kompos an, da is glaub was dabei.. oder die ICS Kompos ( www.overbyte.be )


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Currywurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win XP Pro
D3 Pro, D5 Std, D6 Pers
BeitragVerfasst: Sa 08.11.03 18:37 
zum joinen natürlich einfach die bf1942.exe mit parameter starten, zb. BF1942.exe +joinServer 217.160.178.129:14567 +restart 1

aber weisst du wie man die server liste vom gamespymaster bekommt??? das scheint wohl nich öffentlich zu sein, irgendein key muss da in der kommunikation mit dem gamespy master ausgetauscht werden, weiss zufällig jemand mehr dazu?
superchatti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 296

Win XP, Red Hat Linux 7.3
Delphi 6 PE
BeitragVerfasst: Di 11.11.03 18:18 
stimmen diese angegeben Parameter?

_________________
mfG Superchatti
Currywurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win XP Pro
D3 Pro, D5 Std, D6 Pers
BeitragVerfasst: Di 11.11.03 18:32 
was meinst du mit stimmen?, ist halt ein beispiel, 217.160.178.129 ist die ip und 14567 der port des servers, hab ich beides auch so getestet und ging
superchatti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 296

Win XP, Red Hat Linux 7.3
Delphi 6 PE
BeitragVerfasst: Di 11.11.03 19:45 
weißt du denn auch wie ich den Ping ermittle?

_________________
mfG Superchatti
Currywurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win XP Pro
D3 Pro, D5 Std, D6 Pers
BeitragVerfasst: Mi 12.11.03 07:56 
zum theme pingen solltest du eigentlich in der (google) suche reichlich finden, mein tipp, nimm indy und schau in den demos www.indyproject.org/download/Indy9.html

aber woher bekommst du denn die server ip?, bekommste eine liste der ganzen server?, wenn ja woher??, wie gesagt, bin sehr interessiert daran wie man an eine battlefield server liste kommt :-)
lemming
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 470

Mac OS 10.3.1
Delphi 6 Pro, Kylix 3
BeitragVerfasst: Mi 12.11.03 09:47 
superchatti. Das was du pingen meinst glaube ich ist nicht das was du wirklich willst. Du willst doch schauen ob der BF Server auf einem rechner irgendwo im Internet gerade läuft und am besten noch ob gerade ein Platz darauf frei ist.

Das kennen wir ja alle von half-Life. Bei Half-Life war es sehr einfach, da man RCON hatte. Das Urgestein aus Quake 1 ff..

Bei Battelefield verhält es sich ähnlich. Da solltest du mal nach einem SDK für Modder ausschau halten. Darin wird meistens erklärt wie man auch die Console des Servers fernsteuert oder wie z.B. GameSpy den Status abfrägt.

Ich kann dir gern dabei helfen, die Infos musst allerdings du auftreiben. Dafür hab ich keine Zeit.
Currywurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win XP Pro
D3 Pro, D5 Std, D6 Pers
BeitragVerfasst: Mi 12.11.03 10:40 
also ich habe grade mal ein bissel gegoogelt, hier das forum von kquery www.kquery.com/forum...ndex.php?showforum=7 dort hat jemand selbiges gefragt, und es ist ein beispiel dabei, allerdings in c#
www.kquery.com/forum...ex.php?showtopic=495

meine frage wurde dort auch beantwortet, die serverliste ist nich public :-( sch** gamespy (und für ASE gibs nen extra master, der natürlich aber auch nich öffentlich ist)
superchatti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 296

Win XP, Red Hat Linux 7.3
Delphi 6 PE
BeitragVerfasst: Mi 12.11.03 18:54 
sanke das ihr mir bis jetzt geholfen habt.
Also is ja schön und gut mit dem C# Code...
Aber war bringt er mir in C#?

Danke für die ganzen Antworten

_________________
mfG Superchatti
Currywurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win XP Pro
D3 Pro, D5 Std, D6 Pers
BeitragVerfasst: Do 13.11.03 08:05 
superchatti hat folgendes geschrieben:
Aber war bringt er mir in C#?


sorry für den spruch, aber man könnte es mit denken versuchen! :shock:
ich hab genau wie du keine ahnung von c#, mit indy und udp hab ich auch nie wirklich was gemacht, aber nach harten 3 minuten habe ich erkannt das man lediglich ein udp paket mit dem inhalt '\\info\\' an den server (seinem query port) schicken muss, und dann kommen die daten zurück...

das wesentliche in stolzen zwei zeilen:
ausblenden Delphi-Quelltext
1:
2:
3:
  IdUDPClient1.Send('\\info\\');
  ShowMessage(IdUDPClient1.ReceiveString(-1));
  //natürlich is der port/die ip im objektinspektor eingestellt gewesen


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
superchatti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 296

Win XP, Red Hat Linux 7.3
Delphi 6 PE
BeitragVerfasst: Do 13.11.03 16:43 
also...
Ich habe das gemacht, aber irgendwie hängt sich dann das ganze Programm weg!

_________________
mfG Superchatti
Obi-Wan
Hält's aus hier
Beiträge: 9


D2005 Pers
BeitragVerfasst: Sa 22.04.06 16:57 
Sorry das ich den Thread ausgrabe aber ich fänd es unnütz einen neuen dafür aufzumachen. Ich habe das hier so gemacht wie beschrieben, allerdings mit Battlefield 2 und es funzt auch wunderbar, wenn man nur die serverstats haben will...
Denn der Server scheint mehrere UDP Packets zu schicken (max 1400 bytes wenn ich mich nicht irre). Wenn ich das hier mache:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
udp.Active := true;
udp.Host := '81.3.59.98';
udp.Port := 31531;
udp.Send('\status\');
udp.ReceiveBuffer()
status := udp.ReceiveString(1000);
udp.Active := false;


bekomme ich zwar einen string zurück mit den serverinfos, jedoch sind hinten dran noch die spielerinfos und ca. bei spieler 20/21 sind die abgeschnitten. LAnge rede kurzer sinn, wie bekomme ich es bei dem tidudpclient hin das der die packets hintereinander ausliest und zusammenfügt? Bin jetzt schon seit 2 stunden am suchen (delphi-forum, delphi-source, delphi-praxis, google, ...) aber ich finde einfach nichts.

Wäre schön wenn da einer was wüßte, stehe echt auf dem schlauch :)

MfG

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt