<?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[TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich möchte einen kleinen TCP/IP Server schreiben der einen (!) Client mehrmals hintereinander connecten lassen kann. Also der Server soll fähig sein einen Client gleichzeitig zu bearbeiten, aber der Client soll die Verbindung auch schließen und später wieder aufnehmen können. Ich dachte das ginge ganz einfach so:</p>
<p>Pseudo-Code:</p>
<pre><code class="language-cpp">sock = create_socket();

bind(sock);

listen(sock);

for(;;)
{
	accept(sock);

	for (;;) 
	{
		rc = recv(...);
		if(rc==0) break;
	}

	closesocket(fd);
}
</code></pre>
<p>...lässt den Client aber nur einmalig connecten, ansonsten keine Reaktion.</p>
<p>Edit: Also wenn ich den client starte (der automatisch verbindet) geht es einwandfrei. Dann schließe ich den client und starte ihn wieder, geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179820/tcp-ip-server-der-einen-client-mehrmals-connecten-lassen-kann</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 23:20:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179820.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Apr 2007 15:18:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Wed, 25 Apr 2007 15:29:04 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Ich möchte einen kleinen TCP/IP Server schreiben der einen (!) Client mehrmals hintereinander connecten lassen kann. Also der Server soll fähig sein einen Client gleichzeitig zu bearbeiten, aber der Client soll die Verbindung auch schließen und später wieder aufnehmen können. Ich dachte das ginge ganz einfach so:</p>
<p>Pseudo-Code:</p>
<pre><code class="language-cpp">sock = create_socket();

bind(sock);

listen(sock);

for(;;)
{
	accept(sock);

	for (;;) 
	{
		rc = recv(...);
		if(rc==0) break;
	}

	closesocket(fd);
}
</code></pre>
<p>...lässt den Client aber nur einmalig connecten, ansonsten keine Reaktion.</p>
<p>Edit: Also wenn ich den client starte (der automatisch verbindet) geht es einwandfrei. Dann schließe ich den client und starte ihn wieder, geht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273340</guid><dc:creator><![CDATA[Luke-2]]></dc:creator><pubDate>Wed, 25 Apr 2007 15:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Wed, 25 Apr 2007 21:50:53 GMT]]></title><description><![CDATA[<p>Aus deinem pseudocode kann man nicht viel entnehmen, ausser dass der Code den er widerspiegeln soll wohl ziemlich schrecklich sein muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273592</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 25 Apr 2007 21:50:53 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Thu, 26 Apr 2007 04:54:44 GMT]]></title><description><![CDATA[<p>Es gibt eine Socketoption, SO_REUSE_ADRESS.</p>
<p>Musst mal danach schauen...</p>
<p>Eine weitere alterative wäre es, einen Thread pro Socket zu spendieren.<br />
Du kannst dann immer mit einem bestimmten Port anfangen, sagen wir mal 10000.<br />
Wenn sich jemand mit dem Port 10000 verbunden hat, startest Du in einem neuen Thread einen Server mit dem Port 10001, der dann im Listen-Zustand ist....</p>
<p>Gruß Paddy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273629</guid><dc:creator><![CDATA[Paddy82]]></dc:creator><pubDate>Thu, 26 Apr 2007 04:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Thu, 26 Apr 2007 09:30:45 GMT]]></title><description><![CDATA[<p>Huhu, winke-winke, accept() erzeugt einen neuer Port, da braucht man keinen neuen um nachher noch weitere Verbindungen annehmen zu können!?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273785</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 26 Apr 2007 09:30:45 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Thu, 26 Apr 2007 09:41:27 GMT]]></title><description><![CDATA[<p>Aber meines Wissens nur, wenn man die SO_REUSE_ADRESS Option setzt.</p>
<p>Ich habe mich lange nicht mehr mit &quot;low level&quot; Netzwerkprogrammierung beschäftigt. Ich nutzte dafür immer ACE.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273793</guid><dc:creator><![CDATA[Paddy82]]></dc:creator><pubDate>Thu, 26 Apr 2007 09:41:27 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Thu, 26 Apr 2007 10:45:09 GMT]]></title><description><![CDATA[<p>Das braucht man nur, wenn man sich mehrfach an den gleichen Socket binden will. Normalerweise braucht man es also nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273828</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:45:09 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Thu, 26 Apr 2007 11:26:51 GMT]]></title><description><![CDATA[<p>Paddy82 schrieb:</p>
<blockquote>
<p>Eine weitere alterative wäre es, einen Thread pro Socket zu spendieren.</p>
</blockquote>
<p>richtig, oder man macht es mit non-blocking sockets und 'select'.<br />
macht man weder das eine noch das andere, dann 'hängt' der server (wie in dem code von Luke-2) bei einer verbindung fest.<br />
die lokale portnummer ist in den meisten fällen uninteressant.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273863</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Thu, 26 Apr 2007 11:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Fri, 27 Apr 2007 02:03:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15258">@vista</a>: es geht laut dem OP nicht darum dass der Server &quot;hängt&quot; während der 1. Client connected ist, sondern dass er kein 2. mal connecten kann NACHDEM der 1. Client bereits disconnected hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274299</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 27 Apr 2007 02:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to TCP&#x2F;IP Server der einen Client mehrmals connecten lassen kann on Fri, 27 Apr 2007 07:22:35 GMT]]></title><description><![CDATA[<p>Luke-2 schrieb:</p>
<blockquote>
<p>...lässt den Client aber nur einmalig connecten, ansonsten keine Reaktion.</p>
<p>Edit: Also wenn ich den client starte (der automatisch verbindet) geht es einwandfrei. Dann schließe ich den client und starte ihn wieder, geht nicht.</p>
</blockquote>
<p>Und was liefert dir connect als Fehler? Nen Timeout oder was?</p>
<p>gruss<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274364</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Fri, 27 Apr 2007 07:22:35 GMT</pubDate></item></channel></rss>