Suche P2P WinSock Tutorial



  • c.rackwitz schrieb:

    die verbindung geht ueber einen server.

    Genau, das meinte ich ja auch. Der Server ist allerdings nur dafür zuständig die IPs auszutauschen, der eigentliche Datentransfer (also die Sprache) wird direkt geschickt, das wurde sonst den Server total belasten.

    Vielleicht hilft auch noch, dass ich gehört hab, dass das ganze bei WinSock connectionless Sockets heißt, aber ein TUtorial hab ich dazu auch noch nicht gefunden.

    mfg.





  • Jochen Kalmbach schrieb:

    Skype ist tatsächlich P2P...
    http://www.cs.columbia.edu/~library/TR-repository/reports/reports-2004/cucs-039-04.pdf

    Mein ich ja. 😃

    mfg.



  • joomoo schrieb:

    Mein ich ja.

    Es verwendet aber trotzdem Ports die offen sein müssen 😃



  • YES!!! 😃



  • Jochen Kalmbach schrieb:

    joomoo schrieb:

    Mein ich ja.

    Es verwendet aber trotzdem Ports die offen sein müssen 😃

    Meine Frage ist jetzt folgende: Wenn ich bei Warcraft 3 Spiele aufmachen will, muss ich erst bei meinem Router son Virtual Server einrichten. Wenn ich bei Skype eine Konferenz aufmachen will, muss ich gar nichts einstellen, ich kenne auch keinen bei dem das nicht geht (jemanden der bei Warcraft 3 kein Spiel aufmachen kann, kenn ich haufenweise). Warum ist das so?

    mfg.





  • Wollt ihr ihn verarschen oder was?
    Wenn du was weist, dann sags ihm doch.

    Er kann doch unmöglich diese hässlichen 12 Seiten durchlesen.
    Dann könnte er sich das Forum sparen und könnte gleich ein Buch durcharbeiten.

    Pssstts...



  • Wir sind Google! Selber anstrengen ist zwecklos! :p



  • Das ganze ist nun mal nicht so ganz einfach... :p

    Skype nutzt verschiedene Techniken um mit dem Firewall/NAT Probelm fertig zu werden... dazu bedarf es schon einiger Erklärung...
    Ganz kurz:
    1. Fall: Beide haben öffentliche IPs und sind nicht hinter NAT:

    If both users were on public IP addresses, online and were in the
    buddy list of each other, then upon pressing the call button, the
    caller SC established a TCP connection with the callee SC.

    2. Fall: Einer hat eine öffentliche IP und der zweite ist hinter NAT:

    the caller sent signaling information over TCP to an
    online Skype node which forwarded it to callee over TCP. This
    online node also routed voice packets from caller to callee over
    UDP and vice versa.

    3. Fall: Beide sind hinter NAT:

    both caller and callee SC exchanged signaling information over TCP with another online Skype node. Caller SC sent media over TCP to an online node, which forwarded it to callee SC over TCP and vice versa.



  • @Leser.
    Danke!

    @Jochen Kalmbach
    Okay, das ganze wird jetzt kompliziert, ich hatte mir das eigentlich viel eifnacher vorgestellt.

    Folgendes:
    http://www.gamedev.net/reference/articles/article1059.asp

    Da steht ganz am Anfang das Client - Client System, so wie ich mir das vortelle. Aber in dem Tutorial was dann folgt, wird nur das Client-Server System besprochen.
    Jetzt suche ich halt ein TUtorial für Winsocks mit dem Client-Client System und das NAT-Problem lass ich jetzt mal weg.

    mfg.



  • joomoo schrieb:

    Jetzt suche ich halt ein TUtorial für Winsocks mit dem Client-

    Wie "c.rackwitz" erklärt hat: Es gibt bei TCP kein "Client-Client" System!!! Einer muss der Server sein, der andere der Client!



  • Jochen Kalmbach schrieb:

    joomoo schrieb:

    Jetzt suche ich halt ein TUtorial für Winsocks mit dem Client-

    Wie "c.rackwitz" erklärt hat: Es gibt bei TCP kein "Client-Client" System!!! Einer muss der Server sein, der andere der Client!

    UNd wovon redet der Typ in dem Tutorial da?

    mfg.



  • joomoo schrieb:

    Jochen Kalmbach schrieb:

    joomoo schrieb:

    Jetzt suche ich halt ein TUtorial für Winsocks mit dem Client-

    Wie "c.rackwitz" erklärt hat: Es gibt bei TCP kein "Client-Client" System!!! Einer muss der Server sein, der andere der Client!

    UNd wovon redet der Typ in dem Tutorial da?

    Der versteht selber nicht was er schreibt... das was er als Client-Client beschreibt ist nichts anderes als:

    Client->Server
    Server<-Client



  • der redet davon, dass "client-client" auch nur client-server ist, aber beide clients gleichzeitig server sind.



  • Jochen Kalmbach schrieb:

    joomoo schrieb:

    Jochen Kalmbach schrieb:

    joomoo schrieb:

    Jetzt suche ich halt ein TUtorial für Winsocks mit dem Client-

    Wie "c.rackwitz" erklärt hat: Es gibt bei TCP kein "Client-Client" System!!! Einer muss der Server sein, der andere der Client!

    UNd wovon redet der Typ in dem Tutorial da?

    Der versteht selber nicht was er schreibt... das was er als Client-Client beschreibt ist nichts anderes als:

    Client->Server
    Server<-Client

    Aha. Und was sind verbindungslose/connectionless Sockets?

    mfg.



  • joomoo schrieb:

    Aha. Und was sind verbindungslose/connectionless Sockets?

    UDP



  • Jochen Kalmbach schrieb:

    joomoo schrieb:

    Aha. Und was sind verbindungslose/connectionless Sockets?

    UDP

    Okay danke.

    Jetzt meine Frage: Gibt es eine einfache Möglichkeit das Problem mit dem Umleiten beim öffnen eines Servers zu umgehen? Ich meine, mit dem Gedanke im hintergrund, einen externen server wie bei skype zu haben, der z.b. ip adressen etc austauschen kann.
    (ich dachte das würde mit peer-to-peer zu lösen sein)

    mfg.



  • peer-2-peer ist kein goettliches allheilmittel, das in allen erdenklichen formen erscheint und dich gluecklich macht.
    lies dir mal den wikipedia-artikel zu Kademlia durch, dann wirst du vielleicht verstehen.

    p2p sieht so aus:
    jeder peer ist von aussen erreichbar (also MUSST du den router perforieren).
    jeder peer hat die IPs und ports von einigen anderen peers.
    ein peer verbindet zu bekannten peers und tauscht peerlisten aus.

    die organisation von suchmustern etc bin ich zu faul dir zu reiterieren. -> kademlia



  • c.rackwitz schrieb:

    ein peer verbindet zu bekannten peers und tauscht peerlisten aus.

    Wenn er sich verbindet, dann muss also der andere Peer listen oder wie das heißt? Aber wie soll das gehen, wenn beide wegen des Routers das nicht können?

    mfg.

    edit: Hab's gerade kurz gelesen, die pdf datei, und jetzt hab ichs verstanden. okay, wie ich mir das vorgestellt hab geht wohl nicht, thread kann geschlossen werden.
    Danke an euch, vorallem für die pdf datei.


Anmelden zum Antworten