<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Klassendesign für P2P-Programm]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne ein P2P-Programm programmieren. Ich habe mir schon einige Gedanken über den Klassenaufbau für das Programm gemacht, aber ich stoße dabei immer wieder auf Probleme, die man sicher reduzieren oder evtl. sogar ganz verhindern kann. Zunächst bräuchte ich eine Klasse für den Server und für den Client, da das Progrmam sowohl Verbindungen annehmen als auch neue Vebrindung aufbauen können muss. Jede empfangene Nachricht muss dann verarbeitet werden. Hier wäre ich schon bei meinem ersten Problem angelangt: Soll ich noch eine Klasse für die Verarbeitung der Nachrichten schreiben? Außerdem brauche ich eine Art Liste, wo die letzten empfangenen Nachrichten gespeichert werden, um damit einen Mechanismus zu implementieren, das bereits empfangene Nachrichten nicht nochmal weitergeleitet werden und das Netzwerk unnötig belasten. Damit alles parallel abläuft bräuchte ich Threads. Ich wäre bis hierhin bereits bei 3 Threads. Zwei Nachrichten-Threads, je einer für Client und Server und ein Thread für den Verbindungsaufbau.</p>
<p>Ich müsste auch die empfangenen Adressen irgendwo speichern, damit der Client weiß wohin er sich verbinden soll und selber bei einem Ausfall einiger Verbindungen noch einige Möglichkeiten hat sich neu zu verbinden.</p>
<p>Soweit wäre ich mit meinem Design bisher, aber ich bin damit stark unzufrieden, da es alles andere als gut wartbar ist, da extrem viele Abhängigkeiten entstehen und ich die Zugriffe darauf verdammt gut synchronisieren muss...</p>
<p>Client<br />
- Liste mit den Adressen<br />
- Thread für Verbindungsaufbau<br />
- Thread für Nachrichtenschleife</p>
<p>Server<br />
- Thread für Nachrichtenschleife</p>
<p>MessageParser<br />
- Liste mit letzten emfangenen Nachrichten<br />
- Member zu Client und Server (damit broadcast Funktion aufgerufen werden kann)<br />
- Funktion für das Parsen</p>
<p>Hat jemand ein paar Ideen, wie ich es mir einfacher machen kann? Mein Ansatz würde vermutlich funktionieren, aber der Aufwand ist natürlich enorm...</p>
<p>Viele Grüße<br />
Mr. P</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245710/klassendesign-für-p2p-programm</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 10:13:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245710.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Jul 2009 14:08:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassendesign für P2P-Programm on Fri, 17 Jul 2009 14:08:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne ein P2P-Programm programmieren. Ich habe mir schon einige Gedanken über den Klassenaufbau für das Programm gemacht, aber ich stoße dabei immer wieder auf Probleme, die man sicher reduzieren oder evtl. sogar ganz verhindern kann. Zunächst bräuchte ich eine Klasse für den Server und für den Client, da das Progrmam sowohl Verbindungen annehmen als auch neue Vebrindung aufbauen können muss. Jede empfangene Nachricht muss dann verarbeitet werden. Hier wäre ich schon bei meinem ersten Problem angelangt: Soll ich noch eine Klasse für die Verarbeitung der Nachrichten schreiben? Außerdem brauche ich eine Art Liste, wo die letzten empfangenen Nachrichten gespeichert werden, um damit einen Mechanismus zu implementieren, das bereits empfangene Nachrichten nicht nochmal weitergeleitet werden und das Netzwerk unnötig belasten. Damit alles parallel abläuft bräuchte ich Threads. Ich wäre bis hierhin bereits bei 3 Threads. Zwei Nachrichten-Threads, je einer für Client und Server und ein Thread für den Verbindungsaufbau.</p>
<p>Ich müsste auch die empfangenen Adressen irgendwo speichern, damit der Client weiß wohin er sich verbinden soll und selber bei einem Ausfall einiger Verbindungen noch einige Möglichkeiten hat sich neu zu verbinden.</p>
<p>Soweit wäre ich mit meinem Design bisher, aber ich bin damit stark unzufrieden, da es alles andere als gut wartbar ist, da extrem viele Abhängigkeiten entstehen und ich die Zugriffe darauf verdammt gut synchronisieren muss...</p>
<p>Client<br />
- Liste mit den Adressen<br />
- Thread für Verbindungsaufbau<br />
- Thread für Nachrichtenschleife</p>
<p>Server<br />
- Thread für Nachrichtenschleife</p>
<p>MessageParser<br />
- Liste mit letzten emfangenen Nachrichten<br />
- Member zu Client und Server (damit broadcast Funktion aufgerufen werden kann)<br />
- Funktion für das Parsen</p>
<p>Hat jemand ein paar Ideen, wie ich es mir einfacher machen kann? Mein Ansatz würde vermutlich funktionieren, aber der Aufwand ist natürlich enorm...</p>
<p>Viele Grüße<br />
Mr. P</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1744892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1744892</guid><dc:creator><![CDATA[Mr. P]]></dc:creator><pubDate>Fri, 17 Jul 2009 14:08:26 GMT</pubDate></item></channel></rss>