netzwerk programmierung
-
Hallo,
ich möchte einen kleinen Netzwerkserver entwickeln, für dieses Vorhaben wechsel ich von C# zu C++.
ich hatte mir gedacht mittelst BOOST::ASIO und OMP zu arbeiten, mir ist parallelität sehr wichtig.
Ist die Wahl der mittel gut?, kann mir jemand Lektüre für mein Vorhaben empfehlen?
-
OMP lohnt sich zur parallelisierung von Algorithmen. Je nachdem was dein Server macht, ist aber das Connection Management das A und O.
Schwer zu sagen ohne Infos zu bekommen
-
ich gehe davon aus, dass die clients sehr lange mit dem server verbunden sein werden, unter den clients können beliebig nachrichten verschickt werden, am sinnigsten wäre eine message passing implementierung?
-
Solange du keine Infos gibts, kann man dir nicht helfen.
-
welche infos werden gebraucht?
kurz und knapp:
kurze Textnachrichten sollen von Client zu Client übermittelt werden, dafür soll TCP verwendet werden. möglichst sollte jeder kern belastet werden können, ich möchte auch vermeiden, dass für jeden Client ein Thread erstellt wird.
-
freak131 schrieb:
welche infos werden gebraucht?
Was macht der Server.
Das waere mal ein Ansatz.zB wenn es ein Chat Server waere, dann hast du Kommunikation zwischen den einzelnen Clients ueber den Server. Das waere eine komplett andere Architektur als zB ein HTTP Server.
uU ist es ein Server fuer ein Spiel - dann muss der Server viele Sachen berechnen, dann ist die Architektur wieder eine andere.
Also erklaer einfach mal was das Ziel ist.
-
die Clients sollen untereinander kommunizieren (UTF8 - Textnachrichten) können, den Buffer möchte ich auf 1 KB setzen, dies reich völlig aus.
Als Format möchte ich XML oder JSON verwenden.
-
so wird das nichts... Bitte beschreib genau was du vor hast.
Kommunizieren zB alle Clients miteinander oder gibt es mehrere Channels? Wieviele Clients soll das Ding etwa unterstuetzen. Gibt es privaten Austausch zwischen 2 Clients oder sehen alle Clients alles? Soll nur eine p2p Verbindung zwischen den Clients ermoeglicht werden? etc.
-
vorerst möchte ich keine Channels realisieren, nur eine direkte Client zu Client Kommunikation. Die Kommunikation soll nur über den Server ablaufen.
Ich würde gerne später ermöglichen, dass sich die Clients (zusätzlich) p2p verbinden können um via UDP Streams zu versenden.
ich möchte so viele Clients wie möglich aufnehmen können, im Idealfall möchte ich den Traffic gerne auf mehrere Server auslagern, dass ist aber alles noch Zukunftsmusik.