AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TCP/IP anfrage clonen
Thema durchsuchen
Ansicht
Themen-Optionen

TCP/IP anfrage clonen

Ein Thema von Evian · begonnen am 7. Apr 2006 · letzter Beitrag vom 8. Apr 2006
Antwort Antwort
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#1

TCP/IP anfrage clonen

  Alt 7. Apr 2006, 11:54
Hallo Zusammen,

ich spiele derzeit ein online spiel, dass wenn wenn man es gestartet hat(aber bevor man sich einloggt) automatisch verschiedene Informationen zum Server anzeigt, also Status, Spieleranzahl und Version. Da der Server Mittags oft wegen Patchens "offline" (er lässt sich noch anpingen, ist aber für Spieler nicht zugänglich) ist, möchte ich gern ein Programm schreiben, dass mir periodisch den Status abfragt.
Zu diesem Zwecke habe ich den Datenverkehr zwischen Spiel und Server beim Start der Anwendung mitgesnifft. Und so gesehen sind das releativ wenig Daten, die da hin und her geschickt werden. Ich weiß, welches TCP/IP-packet der Client beim "Hallo sagen" an den Server schickt und ich weiß wie das TCP/IP-packet strukturiert ist, in dem die Statusdaten enthalten sind. Nur fehlt mir jetzt noch der Ansatz, wie ich das Wissen über den Packetinhalt in ein Pragramm umsetzte. Ich habe ein wenig mit dem Indy TCP-Client rumprobiert, aber nicht wirklich etwas erreicht. Ich kann mich zwar zum Server verbidnen, aber mehr als ein "%" bekommen ich nicht vom Server zugesannt.

Also meine Frage wäre, wie kann ich mich zu einem speziefischen Server+Port verbinden und an ihn ein speziefisches TCP-Packet abschicken, am besten in Form eines BYTE-Arrays.

Entschuldigt bitte, wenn ich hier vielleicht totalen Müll geschrieben habe, aber ich bin relativ frisch in Sachen TCP/IP in bezug auf OP bzw. Delphi. Wenn das so gar nicht geht, oder ich es ganz anders angehen sollte, dann bitte ich um einen Hinweiß,

vielen Dank,

Evian
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Noteip

Registriert seit: 2. Feb 2006
Ort: Altrip
6 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: TCP/IP anfrage clonen

  Alt 7. Apr 2006, 15:03
Gut wäre noch zu wissen, wie das Packet aufgebaut ist (sind es nur ASCII-Zeichen, usw.).
Markus
gruß
Markus
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#3

Re: TCP/IP anfrage clonen

  Alt 7. Apr 2006, 22:05
Nagut, ich versuch es mal so genau zu beschreiben wie es mir möglich ist:

Wenn ich das Spiel starte kommt follgender Login-Bildschirm, wobei es mir insbesondere um die im Roten Feld liegenden Informationen geht:

http://www.phillsoft.de/Phill/work/eve/eve.jpg

...

Jetzt zu den gesnifften Packeten, wobei grau der MAC-Header ist, rot der IP4-Header, grün der TCP-Header und Blau sonstiger Inhalt:
  • 1. Ich -> Server:
    1.jpg
  • 2. Server -> Ich
    2.jpg
  • 3. Ich -> Server
    3.jpg
  • 4. Server -> Ich
    4.jpg

Ich habe das ein paar mal gemacht, und bin mir recht Sicher, dass die entsprechend gekennzeichnetten Bytes den dazu geschriebenen Informationen angehören. Die Restlichen infos bekomme ich sicher auch noch raus, aber da beim Testen sich bis jetzt maximal die Spielerzahl verändert hat, weiß ich halt noch nicht mehr.

Aber warum es mir eigentlich geht ist, dass ich das letzt Packet über ein eigenes Programm empfangen will.. nur fehlt mir da jetzt noch der entsprechende Ansatz

liebe Grüße, Evi

PS: Server IP ist 87.237.38.200:26000
und es wird vom Client aus immer der Port 1793 zum senden genutzt.

PS2: Hach, das erinnert mich irgendwie voll an die guten alten Zeiten, wo man im Savegame von irgendeinem Spiel per Hex-Editor nach dem Kontostand gesucht hat und nach ein paar veränderungen Milliadär war . *g*
Miniaturansicht angehängter Grafiken
4_474.jpg   3_118.jpg   2_176.jpg   1_890.jpg  
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#4

Re: TCP/IP anfrage clonen

  Alt 7. Apr 2006, 22:54
Mh.. habe mich gerade mal per (Indy)IdTCPClient1 zum Server verbunden und das mitgesnifft.. ha und siehe da, der Server sendet mir auch so das Status packet. Jetzt bleibt eigentlich nur eine Frage offen... wie kann ich mir jedes vom Client empfangene Byte ansehen?! .. Hat jemand eine Ahnung?! Weil hab mit dem Indy Client noch nie vorher gearbeitet.
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#5

Re: TCP/IP anfrage clonen

  Alt 7. Apr 2006, 23:22
Also ich habe es jetzt mal so probiert...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR
str,hexstr : String;
i : Integer;
begin
  with IdTCPClient1 do begin
    Host := '87.237.38.200';
    Port := 26000;
    Connect;
    try
      str := ReadLn;
      for i := 1 to length(str) DO
      BEGIN
        hexstr := hexstr + ' ' + (IntToHex(Word(Str[i]), 2));
      END;
      Listbox1.Items.Append(hexstr);
    finally
      Disconnect;
    end;
  end;
end;
und es werden mir promt die ersten 22 Byte's(in Hexadezimal) des Statuspackets angezeigt... aber laut dem Sniffer sind es 41 BYTE an Informationen.. in dem Packet. Warum werden die Restlichen Byte nicht mitgelesen?
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TCP/IP anfrage clonen

  Alt 8. Apr 2006, 06:48
Hai Evian,

hänge die Bilder doch bitte als Anhang an dein Posting. Alles zusammen sind das über 400kByte und nicht jeder hat eine schnelle DSL-Leitung. Ausserdem kansst Du deine Beiträge editieren und musst also nicht ein neues Posting erstellen um zusätzliche Infos anzugeben (pushing).
Stephan B.
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#7

Re: TCP/IP anfrage clonen

  Alt 8. Apr 2006, 09:39
mh Entschuldige bitte,

ich war gestern so guter Laune, dass ich nicht mehr daran gedacht habe, dass man die vielen Postings als Pushing bewerten könnte. Werde das in Zukunft wieder vermeiden! Und zu den Bildern, hab sie jetzt bis auf das erste ins Attach gepackt.. gehen leider nur 4 in den Anhang... aber werde mich bemühen, bei allzugroßen Bildmengen, sie in Zukunft auch sofort in den Anhang zu legen. Mein Sinn, war es ursprünglich aber eigentlich, die DP zu entlasten, da ich die Bilder auf meinen eigenen Server geladen habe, aber unsere Modem-Freunde habe ich da natürlich wirklich vergessen... sorry!

Edit:

hat sich erledigt, mit "str := ReadString(41);" bekomme ich alle Bytes, die ich brauche ^^
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz