<?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[Client&#x2F;Server Kommunikation Realisierung]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich muss eine Client- und eine Serveranwendung bauen, welche über das Netz kommunizieren können.</p>
<p>Der Client muss dabei Befehle und Daten (z.B. Binärdateien) vom Server erhalten können.<br />
Es ist möglich dass der Client den Server einfach jede Minute einmal anspricht und nach neuen Daten fragt etc.</p>
<p>Wie realisiere ich das am besten?</p>
<p>Bisher wollte ich einfach &quot;Daten&quot; via Sockets übertragen. Die Daten können ja ein bestimmtes Format haben.</p>
<p>Aber dieser Ansatz ist irgendwie sehr fehleranfällig. Typisches RPC ist eher schlecht, weil nicht so viele Ports freigegeben werden dürfen. Eine andere Möglichkeit wäre einen Webservice zu bauen (WSDL), aber ist das wirklich einfacher als die Lösung mit Sockets?</p>
<p>Vielleicht gibt es noch eine bessere Möglichkeit. Leider bin ich gerade etwas ratlos wie man so eine Kommunikation am Besten realisiert.</p>
<p>Client und Server sind beide in C++ (kein .NET).</p>
<p>Danke und Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288031/client-server-kommunikation-realisierung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 04:02:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288031.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Jun 2011 08:55:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 08:55:13 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich muss eine Client- und eine Serveranwendung bauen, welche über das Netz kommunizieren können.</p>
<p>Der Client muss dabei Befehle und Daten (z.B. Binärdateien) vom Server erhalten können.<br />
Es ist möglich dass der Client den Server einfach jede Minute einmal anspricht und nach neuen Daten fragt etc.</p>
<p>Wie realisiere ich das am besten?</p>
<p>Bisher wollte ich einfach &quot;Daten&quot; via Sockets übertragen. Die Daten können ja ein bestimmtes Format haben.</p>
<p>Aber dieser Ansatz ist irgendwie sehr fehleranfällig. Typisches RPC ist eher schlecht, weil nicht so viele Ports freigegeben werden dürfen. Eine andere Möglichkeit wäre einen Webservice zu bauen (WSDL), aber ist das wirklich einfacher als die Lösung mit Sockets?</p>
<p>Vielleicht gibt es noch eine bessere Möglichkeit. Leider bin ich gerade etwas ratlos wie man so eine Kommunikation am Besten realisiert.</p>
<p>Client und Server sind beide in C++ (kein .NET).</p>
<p>Danke und Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075578</guid><dc:creator><![CDATA[c++_frager]]></dc:creator><pubDate>Thu, 09 Jun 2011 08:55:13 GMT</pubDate></item><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 09:09:52 GMT]]></title><description><![CDATA[<p>sockets sind genau das, was du brauchst. Abhängig von deinem OS bringt die Compiler Suite wahrscheinlich schon was mit, wenn du plattformunabhängig sein willst guck dir boost::asio an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075581</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 09 Jun 2011 09:09:52 GMT</pubDate></item><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 11:25:51 GMT]]></title><description><![CDATA[<p>c++_frager schrieb:</p>
<blockquote>
<p>Bisher wollte ich einfach &quot;Daten&quot; via Sockets übertragen. Die Daten können ja ein bestimmtes Format haben.</p>
<p>Aber dieser Ansatz ist irgendwie sehr fehleranfällig.</p>
</blockquote>
<p>Was soll daran fehleranfällig sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075649</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 09 Jun 2011 11:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 11:40:42 GMT]]></title><description><![CDATA[<p>Suchst du vielleicht eine <em>asynchrone</em> Verbindung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075659</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 09 Jun 2011 11:40:42 GMT</pubDate></item><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 12:16:22 GMT]]></title><description><![CDATA[<blockquote>
<p>Bisher wollte ich einfach &quot;Daten&quot; via Sockets übertragen.</p>
</blockquote>
<p>Sockets übertragen nur ByteStröme(TCP) / ByteHäppchen(UDP) ...<br />
DU musst also noch nen höheres Protokoll druebersetzen.</p>
<p>Ob du da schon was vorgefertigtes nimmst (webservises z.b.) oder selbst ein eigenes Kommunikations-Protokoll drüberlegst, ist alles dein Problem.</p>
<p>Bei Kommunkation zwischen teilnehmern auf unterschiedlichen Plattformen nimmt man oft Text (ASCII) - Zeilenorientierte protokolle</p>
<p>Beispiele wie man sowas definiert kannst in den RFC's zu smptp, ftp, http, telnet ... finden. Und auch z.b. , wie man binaer-daten ueber ein ASCII basierendes protokoll drüberbekommt (Base64/radix)</p>
<p>Alternativ, wenn deine Plattform immer gleich aufgebaut ist (8bit = 1byte) kannst binaerprotokolle fahren (Little/Big-Endian sollte dein Protokollstack dann rauscodieren)<br />
Beispiel fuer sowas ist z.b. nfs,samba,Medien-Streams aller Art</p>
<p>Was das beste fuer Dich ist .... musst du entscheiden.<br />
Fehlerhaft darf es natuerlich nicht sein. Der Aufwand um das so fehlersicher wir möglich zu machen,sollt natürlich in die Wahl des Protokolls mit eingehen ...</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075681</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Thu, 09 Jun 2011 12:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 14:11:06 GMT]]></title><description><![CDATA[<p>Erstmal Danke für eure Antworten!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18927">@DocShoe</a>: Danke ich werde es nun direkt mit Sockets (TCP) machen</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@Belli</a>: Ich habe schon oft gelesen das diese selbst gestrickten Nachrichten sehr fehleranfällig sind - insbesondere weil eine feste Schnittstellendefinition fehlt.<br />
Daher mein Zweifel an dieser Lösung.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3842">@RHBaum</a>: Danke ich werde mir das mal ansehen.</p>
<p>Wegen dem Protokoll hatte ich auch noch eine andere Idee. Ich würde das gerne in einer Klasse kapseln. Diese enthält dann Typ der Nachricht, Nutzlast, etc.<br />
Und dann würde ich ein simples Request/Response Protokoll bauen.<br />
Ich frage mich nur wie ich eine Klasse über Sockets übertragen kann. Gibt es da einen guten Weg zur Serialisierung der Daten in der Klasse?<br />
Ist es eine gute Idee eine Klasse als Nachrichtenstruktur/Protokoll zu verwenden?</p>
<p>Danke nochmal, Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075763</guid><dc:creator><![CDATA[c++_frager]]></dc:creator><pubDate>Thu, 09 Jun 2011 14:11:06 GMT</pubDate></item><item><title><![CDATA[Reply to Client&#x2F;Server Kommunikation Realisierung on Thu, 09 Jun 2011 14:40:21 GMT]]></title><description><![CDATA[<p>Guck Dir doch mal Boost.Serialization (<a href="http://www.boost.org/doc/libs/1_46_1/libs/serialization/doc/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_46_1/libs/serialization/doc/index.html</a>) oder Google Protocol Buffer (<a href="http://code.google.com/p/protobuf/" rel="nofollow">http://code.google.com/p/protobuf/</a>) an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2075785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2075785</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 09 Jun 2011 14:40:21 GMT</pubDate></item></channel></rss>