Aufbau von Peer-to-Peer Systemen



  • Hi @ all,

    irgendwie komme ich mit der Umsetzung von p2p Systemen nicht klar. Wenn ich das System auf Basis von TCP/IP Sockets aufbauen möchte, brauche ich doch quasi in meiner P2P-Komponente einen ServerSocket und pro Verbindung einen ClientSocket... ?!

    Beim Start der Komponente beginnt der ServerSocket an einem Port auf Verbindungen zu warten.
    Also muss doch ein ClientSocket eine Verbindung zu diesem ServerSocket herstellen - und umgedreht müsste der Rechner der angefragt wurde (Rechner 2) ebenfalls per Client zu Rechner 1 verbinden. Nur dann habe ich doch quasi pro P2P-Verbindung eigentlich 2 Verbindungen (also Sockets) belegt...

    Habe ich hier ein grundlegenes Verständnißproblem oder muss das wirklich so sein ?
    Im Internet findet man sehr viel grundlegenen Kram - aber ein konkretes, einfaches Beispiel war nicht zu finden...

    Ich wär' echt glücklich, wenn mir jemand helfen könnte.

    mfg GreenHorn



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das Problem ist, dass du irgend eine merkwürdige API benutzt. Sockets sind Full-Duplex: Sprich du kannst lesen und schreiben auf einem Socket. Du könntest mit man: select (oder besser man: kqueue oder epoll) prüfen, ob du auf dem Socket schreiben oder Lesen kannst. Wenn du schreiben kannst, schreibst du die Daten rein, die du senden willst, wenn du lesen kannst, hat der nächste Peer dir etwas geschrieben.

    Aber du kannst natürlich auch zwei Sockets aufmachen (oder 100 oder so viele wie dein Computer verkraftet ;)), wenn du ein P2P Programm schreiben willst.



  • Siehe Kap. 20 von Visual C++ in 21 Tagen.
    http://www.amazon.de/Visual-C++-Tagen-Programmierkurs-Einsteiger/dp/3827220351
    Gab es auch mal kostenlos online (meine Links funktionieren nicht mehr), musst halt suchen.


Anmelden zum Antworten