Serverzugriff, welche Komponente ? welches Protokoll ?



  • Hallo,
    Als erstes möchte ich sagen, daß ich sowas noch nie gemacht habe und darum verzeiht, wenn ich mich nicht korrekt ausdrücke :), aber deshalb frage ich ja hier.
    Ich wurde dazu angehalten eine Anwendung schreiben womit man einen Spiele-Server steuern kann (remote application). Nun ist mir nicht klar welche Protokolle da verwendet werden bzw. welche Komponenten dafür in Betracht kommen um dies zu realisieren(BCB 2007 enterprise). Ich schätze irgendeine Indy10 Komponente, aber da sind ja sooo viele.
    Der Server ist passwort geschützt und benötigt einen username.
    Vielleicht kennt sich ja jemand speziell damit aus und kann mir da etwas weiterhelfen, bin natürlich auf für jeden anderen Rat dankbar.

    Danke



  • Guten Tag

    Was ist das denn für ein Server?
    Ich habe letztens einen Uploader geschrieben und hab dazu den IndyHTTP verwendet . Protokol ist ja relativ du musst nur den richtigen Port ansprechen (Eigenschaft Port). Das Komplizerte ist die anfragen zusammenzustellen aber wenn du genau weist wie der Server funktioniert schafft man das.

    greetZ



  • Danke für die Antwort.
    Es sollte allgemein für alle Spiele-Server gelten. (gemietete, eigene usw.)
    wie schon gesagt es wird ein Passwort, User Name und ein Port benötigt um erstmal reinzukommen.
    Habe mir mal IndyHTTP angeschaut, wo übermittle ich da z.B. das Password ? bei der Eigenschaft Request ? benutzt man 'BoundIP' und 'BoundPort' ? wo setze ich den Port ?
    Wahrscheinlich ist das was Du da meinst mit 'anfragen zusammenzustellen'.
    Ich brauche eigentlich nur den Anfang, wie ich da rein komme, alles weitere kann ich dann irgentwie selbst zusammen stellen (hoffe ich) lol.
    wäre nett wenn ich erfahren könnte welche Eigenschaften von IndyHTTP ich konkret zum einloggen benötige. Ich persönlich habe IndyHTTP nur einmal benutzt um Dateien von einem Server herrunterzuladen "IdHTTP1->Get(AnsiString, TStrem*)"(ohne login, ohne password und username)

    Danke



  • Ich habe etwas 'rumprobiert' und glaube den Zugang gefunden zu haben. IndyHTTP war schon mal ein guter Tip. (hoffe ich :)) Werden sehen, ob noch andere Probleme auftauchen 🙂 bzw. ob ich damit das machen kann was ich benötige.
    Ist halt schlimm, wenn man etwas zum erstenmal macht, und die BCB Hilfe ist da nicht immer unbedingt eine Hilfe wenn man nicht weiß nach was man suchen soll,
    Danke !



  • Hallo,

    Zusammen mit der BCB-Hilfe solltest Du Die folgende Eigenschaften ansehen:

    IdHTTP1->Request->Username
    IdHTTP1->Request->Password
    IdHTTP1->Request->Host

    oder

    IdHTTP1->Request->Authentication->Username
    IdHTTP1->Request->Authentication->Password

    an.

    Du kannst auch direkt diese Einstellungen im Objektinspector machen.
    Die wichtigsten sind zu finden in der Rubrik Request.



  • Danke !

    sobald ich irgendetwas mit 'IdHTTP1->Request->Authentication->' machen möchte, bekomme ich eine Fehlermeldung 'Zugriffsverletztung bei Adresse blah blah'.
    Wie schon gesagt, habe ich mich mit soetwas noch nie beschäftigt und ich müßte erstmal wissen wie die Kommunikation zwischen Client und Server abläuft, wie ich Anfragen sende und Antworten bekomme. Gibt es da irgendwo Beispiele, Beschreibungen wo man die grundlegenden Dinge nachsehen kann ? Hab schon ge'google't, aber nicht wirklich was gefunden was mich weiterbringt.

    Danke



  • Hilfen zu Indy-Komponenten:

    http://www.indyproject.org/Sockets/Docs/index.DE.aspx

    Und unter Google noch etliche weitere Links, die sich mit dem Thema befassen!
    Eine sichere Verbindung habe ich mit IdHTTP noch nicht gemacht.

    Was für Aktionen sollst Du denn explizit remote steuern können?

    gruß Arne



  • Danke für den Link, hatte mir die Hilfe auch schon herruntergeladen.
    Wie das halt auf einem game-server ist, da sollen Spieler angezeigt werden, Map-wechsel vorgenommen werden usw. Eine Liste von den Steuerbefehlen habe ich.
    Nur ist immernoch mein Problem, der richtige Login. Habe auch schon mit TCP/UDP probiert. Ich gehe mal davon aus, daß dieser Login per 'SendCmd' stattzufinden hat !??, weiß aber nicht genau wie der Server das haben will. Eine Verbindung zu Server herstellen per IP und PORT ist kein Problem, aber die Athorisierung, sodaß er dann Befehle ausführt. Wenn ich versuche z.b per

    IdTCPClient1->SendCmd(username + ":" +passwort);
    

    mich anzumelden, bricht die Verbindung mit 'Connection Closed Gracefully' ab und mit

    IdTCPClient1->IOHandler->WriteLn(username + ":" + password);
    

    passiert gar nichts. Wobei ich nicht sicher bin, wie ich username und password übermitteln muß.


Anmelden zum Antworten