Server daten empfangen



  • welches protokoll willst du denn implementieren?



  • Also ich hab gerade herausgefunden das doch nur TCP verwendet wird.

    Hab auch gerade mit einem Socket getestet ob eine Verbindung aufgebaut wird. Das klappt auch ganz kurz aber da der Client wahrscheinlich noch eine Antwort erhalten muss das er auch verbunden ist und dies nicht passiert erhalte ich immer ein Connection Timeout und es werden vom Client keine Daten versendet.

    Also ich erhalte die Meldung das ein Client verbunden wurde und erhalte die IP und den Clientport doch beim Client kommt der Timeout.

    Jetzt müsste ich ja nur herausfinden was der "richtige" Server eigentlich als Antwort versendet und das dann irgendwie selber einbauen oder?

    Das müsste ja eigentlich mit einem Sniffer möglich sein glaub ich.

    Pete1



  • ja das ist möglich. aber je nach komplexität des protokoll sehr einfach oder unschaffbar schwer. die besten leute haben zb. das skype protokoll noch nicht entschlüsselt.



  • Ja das hab ich mir schon gedacht. Aber ich werde es mal analisieren.

    Mal eine andere Frage.

    Ich müsste dem Client Daten auf einem Port (z.b. 8000) senden.
    Der Client akzeptiert alles was auf diesem Port reinkommt.

    Ist es möglich ein Socket oder etwas ähnliches zu programmieren damit er Daten an diesen Port sendet?

    Also bei Sockets wird ja erstmal eine Verbindung zu einem Server hergestellt und ich denke ja das es hier nicht funktionieren wird eine Verbindung herzustellen.

    Gibt es da eine Möglichkeit?

    Danke für deine Hilfe.

    Pete1



  • pete1 schrieb:

    Also ich erhalte die Meldung das ein Client verbunden wurde und erhalte die IP und den Clientport doch beim Client kommt der Timeout.

    Je nach Protokoll erwartet der Client sicher irgendwelche Daten vom Server, eventuell Version, Name oder was weiß ich.

    Du musst halt durch Packet-Capturing herausfinden wie der Verbindungsaufbau und sonst alles andere bei diesem Protokoll abläuft.

    PS: Vielleicht würde es helfen, wenn du uns sagst um welches Protokoll es sich handelt 😉



  • pete1 schrieb:

    Ich müsste dem Client Daten auf einem Port (z.b. 8000) senden.
    Der Client akzeptiert alles was auf diesem Port reinkommt.

    Wenn der "Client" auf Daten wartet, die an den Port 8000 geschickt werden, dann handelt es sich (im Sinne der Netzwerktechnik) nicht um einen Client sondern um einen Server!
    Grundsetzlich wird der Verbindungsaufbau immer vom Client initiiert, nicht vom Server.

    Wenn Du in diese Thematik unter Linux einsteigen willst und einfache Client/Server-Beispielprogramme suchst, kann ich Dir mein Buch "C und Linux" empfehlen 😃



  • Ja es handelt sich schon um ein Client aber dieser übernimmt in einigen Fällen auch die Serverfunktion.

    Also wartet auch der Client auf Anfragen.

    Das Protokol ist ziemlich unbekannt das es nur in bestimmten Bereichen eingesetzt wird die nicht so verbreitet sind deßhalb weiß ich nicht ob es überhaupt was bringt wenn ich euch sage welches.

    Ich habe nun auch eine Beschreibung des Protokols für den Loginvorgang gefunden.

    Allerdings weiß ich nicht so richtig wie ich das nun einsetzen kann.
    Es gibt dazu auch Beispiel Code allerdings gibts da kein main d.h. man muss es irgendwie selber einbauen.
    Nur weiß ich leider nicht genau wie.

    Pete1



  • pete1 schrieb:

    Ich müsste dem Client Daten auf einem Port (z.b. 8000) senden.
    Der Client akzeptiert alles was auf diesem Port reinkommt.

    Ist es möglich ein Socket oder etwas ähnliches zu programmieren damit er Daten an diesen Port sendet?

    Also bei Sockets wird ja erstmal eine Verbindung zu einem Server hergestellt und ich denke ja das es hier nicht funktionieren wird eine Verbindung herzustellen.

    Du hast hier offenbar ein grundlegendes Verständnisproblem: Wenn das Gerät/System, wie Du eingangs geschrieben hast, TCP verwendet, handelt es sich auf jeden Fall um eine verbindungsorientierte Kommunikation, d. h. der Client muss zunächst mit connect() eine Verbindung zu dem angegebenen Port (8000) des Servers aufbauen.
    Wie schon gesagt, einen Einstieg in die Grundlagen findest Du in meinem Buch. 😉

    PS.: Ich denke, ohne Infos über das Protokoll und ohne irgendwelche Quelltext-Auszüge wird Dir wohl kaum jemdand hier weiterhelfen können.



  • Hi,

    erstmal danke für die bisherige Hilfe.

    Mir ist der TCP Prinzip schon klar.
    Aber hier ist es auch möglich die Verbindung vom Server aus aufzubauen. Zu dem kann der Client Daten auf einem Port ständig empfangen.

    Ich habe auch etwas Quellcode und wie gesagt auch die Beschreibung des Vorgangs beim Login (von Client -> Server und Server -> Client).

    Allerdings weiß ich nicht ob ich das hier posten darf/soll.

    Würde mich über eure Hilfe natürlich sehr freuen.

    Danke

    pete1



  • ein gewisses basiswissen ist schon nötig, um überhaupt fragen stellen zu können, zumindest in einer form, in der wir hier verstehen, was dein anliegen ist. so ungern ich selbst fachvokabel hab, aber

    pete1 schrieb:

    Zu dem kann der Client Daten auf einem Port ständig empfangen.

    ist schon etwas sehr weit von fachsprache entfernt. wir können dann im prinzip nur raten, dass er udp dazu verwendet.
    zum anderen bist du sehr sparsam mit informationen. beginnen wir zb. damit, dass du uns die namen der anwendungen verratest, deren protokoll du reverse engineeren willst. wenn du das nicht willst oder glaubst, nicht zu dürfen, können wir dir hier unheimlich wenig helfen. wir brauchen konkrete fragen zb. wie du ein socket aufbaust, oder so was.

    vielleicht helfen dir folgendes zwei links:
    http://www.pronix.de/pronix-25.html allgemeine informationen über netzwerkprogrammierung unter unix/linux.
    http://www.wireshark.org/ ein programm, mit dem du den traffic aufzeichnen kannst, den die originalen programme erzeugen.

    uns würde am ehesten noch helfen, wenn wir einen mitschnitt dieses traffics von dir bekommen könnten. hier kann man keine dateien raufladen, soweit ich weiß. vielleicht kannst du es wo anders und uns einen link dazu posten. bedenke aber, dass wir dann möglicherweise sachen sehen, von denen du das nicht willst.


Anmelden zum Antworten