Du bist nicht angemeldet.

Werbeanzeige

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 667

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1

22.02.2014, 15:10

[C++] p2p Netzwerk Protokol?

Hi,

welches Protokol würde ich für einen einfachen p2p Dateiaustausch wählen?
Ich würde dazu am liebsten libcurl nehmen (es muss cross platform laufen), übers lokale Netz würde reichen, noch besser sogar übers Internet.

FTP braucht ja einen Server, oder geht das trotzdem?
Ansonsten könnte man immer noch über Sockets einen stream aufbauen (ich denke libcurl kann das?).

Hat hier sonst einer Erfahrung mit libcurl und sowas schon mal gemacht?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DeKugelschieber« (24.02.2014, 14:25)


Sacaldur

Community-Fossil

Beiträge: 2 330

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

22.02.2014, 16:07

Egal, wie du die Netzerkkommuniation handhaben möchtest, du wirst immer eine Stelle haben, die initial auf eine eingehende Verbindung wartet und eine, die dann die Verbindung aufbaut. (Sockets eben)
Ob du darauf aufbauend nun FTP, HTTP oder etwas ganz anderes (bspw. was eigenes) verwendest, hängt von deinen Anforderungen ab. Da ich diese nicht kenne, kann ich dir nur zu TCP und einem darauf aufbauenden Protokoll raten. (Sowohl HTTP, als auch FTP können zur Übertragung von Dateien in beide Richtungen verwendet werden.)

libcurl dürfte nur die Implementierung entsprechender Protokolle umfassen. Wenn du am Überlegen bist, welches Protokoll du verwenden willst, bringt dir diese Bibliothek also (noch) nichts.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

22.02.2014, 16:50

Ich denke FTP ist am besten für Dateien geeignet.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 667

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

4

22.02.2014, 19:04

Okay, versuch ich das mal.
Gibt es eine cross platform Socket lib? Ich würde ungerne das ganze 3 mal schreiben ;)

H5::

Treue Seele

Beiträge: 385

Wohnort: Kiel

  • Private Nachricht senden

5

22.02.2014, 19:22

:love: := Go;

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »H5::« (22.02.2014, 19:28)


NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

22.02.2014, 19:31

Die SFML bietet ein sehr einfaches Interface dafür. :D
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

H5::

Treue Seele

Beiträge: 385

Wohnort: Kiel

  • Private Nachricht senden

7

22.02.2014, 19:48

Also ich fand sich Boost.ASIO ein zu fangen schon als ziemlich groß… aber SFML? Also wenn man diese nicht gerade benötigt würde ich doch zu einer etwas spezialisierteren Bibliothek raten. Wenn schon irgendwo anderes gesagt wurde, dass er sie eh benutzt hab ich nichts gesagt.
:love: := Go;

patrick246

Treue Seele

Beiträge: 329

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

8

22.02.2014, 20:12

Man kann auch nur den Netzwerkteil von SFML einbinden, das sind nur einzelne .libs und der Netzwerkteil ist soweit ich weiß nur vom Systemteil abhängig

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 667

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

9

22.02.2014, 20:44

Stimmt H5, asio klingt gut, ich verwende sowieso schon boost.
Es geht übrigens nicht um ein Spiel, daher möchte ich jetzt auch nicht anfangen ein Patchwork aus 10 verschiedenen libs zu bauen...

Ich probier das morgen mal alles durch, danke schon mal :)

Nox

Supermoderator

Beiträge: 5 282

Beruf: Student

  • Private Nachricht senden

10

22.02.2014, 21:29

FTP nutzt TCP als Transportschicht, welches wiederum verbindungsorientiert arbeitet. Das heißt eine Seite muss auf dementsprechenden Port zuhören und es ist kein "punch through" möglich. Sprich wenn du P2P mit FTP/TCP realisieren willst und die Clients hinter Routern o.ä. sitzen, muss zumindest ein Teil die Ports öffnen. kA ob das für deinen Anwendungsfall praktikabel ist.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige