<?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[EOF bei send&#x2F;recv ???]]></title><description><![CDATA[<p>hallo,</p>
<p>in einem Programm von mir wird in einer Schleife nacheinander ein Zeichen aus einer Datei ausgelesen und über die Funktion send das Zeichen versendet. Das Gegenstück davon, der Client, empfängt die Zeichen nacheinander, und gibt sie aus.<br />
Nun zu meinem Problem:<br />
Ich hab bisher keine Möglichkeit gefunden, dass der Client wirklich nur so lange empfängt, wie der Server auch Zeichen verschickt. Der Client müßte also irgentwie vorher prüfen, ob noch was im stream liegt. Gibt es da nich eine Möglichkeit, die so ähnlich funktioniert wie EOF bei Dateien???.</p>
<p>schon im voraus Vielen Dank!</p>
<p>mfg<br />
#pointer#</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132028/eof-bei-send-recv</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 08:22:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132028.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Jan 2006 18:55:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 18:55:15 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>in einem Programm von mir wird in einer Schleife nacheinander ein Zeichen aus einer Datei ausgelesen und über die Funktion send das Zeichen versendet. Das Gegenstück davon, der Client, empfängt die Zeichen nacheinander, und gibt sie aus.<br />
Nun zu meinem Problem:<br />
Ich hab bisher keine Möglichkeit gefunden, dass der Client wirklich nur so lange empfängt, wie der Server auch Zeichen verschickt. Der Client müßte also irgentwie vorher prüfen, ob noch was im stream liegt. Gibt es da nich eine Möglichkeit, die so ähnlich funktioniert wie EOF bei Dateien???.</p>
<p>schon im voraus Vielen Dank!</p>
<p>mfg<br />
#pointer#</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959932</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 18:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:12:15 GMT]]></title><description><![CDATA[<p>es ist gerade beim senden und empfangen einfacher vor dem eigenlichem senden zu sagen wie viele zeichen empfangen werden sollen.</p>
<p>alles andere im stream zu integrieren wäre eine art der codierung und in der bytefolge einfach zu unsicher.</p>
<p>lg volker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959962</guid><dc:creator><![CDATA[vdittrich]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:16:08 GMT]]></title><description><![CDATA[<p>hm...<br />
aber da ich die Zeichen sofort nach dem ausgelesen verschicke, kann ich ja nicht wissen wieviele Zeichen ich noch auslesen werden.<br />
oder kann ich das irgentwie vorher ermitteln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959966</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:22:32 GMT]]></title><description><![CDATA[<p>Du kannst mit dem Befehl shutdown auf der Seite wo geschrieben wird den Schreibkanal schliessen. Das kommt auf der lesenden Seite dann rüber wie ein EOF (0 Zeichen gelesen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959986</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:22:32 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:25:15 GMT]]></title><description><![CDATA[<p>wie funktioniert denn der Befehl shutdown?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/959994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/959994</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:25:15 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:32:55 GMT]]></title><description><![CDATA[<p>send und recv sollten immer in schritten senden, ich schlage mal 256 bytes vor. Der erste byte, wird nun immer sagen wieviel bytes noch folgen. Sobald dieser nun &lt; 255 ist, weiß der Empfänger, das das aktuelle Paket das letzte ist.</p>
<p>Beispiel für 321 Byte Datei:</p>
<pre><code class="language-cpp">send(socket,pBuffer,256,0);
// empfänger: recv(socket,pBuffer,256,0);
send(socket,pBuffer,67,0);
// empfänger immer noch recv(socket,pBuffer,256,0);
</code></pre>
<p>Jetzt macht der Empfänger aber folgendes:</p>
<pre><code class="language-cpp">if (pBuffer[0] &lt; 255)
{
// datei mit dem letzten datenpaket beenden
}
</code></pre>
<p>Ich hoffe das war verständlich <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>
<p>mfg.</p>
<p>edit: die antwort mit shutdown war noch nicht da. Der Befehl ist in der MSDN erklärt. <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/shutdown_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/shutdown_2.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/960008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960008</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:32:55 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:31:44 GMT]]></title><description><![CDATA[<p>Frickler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960011</guid><dc:creator><![CDATA[schonwieder]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:31:44 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 19:57:49 GMT]]></title><description><![CDATA[<p>aja...danke joomoo.<br />
wie kann ich es denn dann auf der anderen Seite prüfen, wenn ich shutdown beim Server eingesetz habe?</p>
<pre><code>tmp=recv(...);
</code></pre>
<p>ist dann tmp mit EOF definiert, oder in dem Buffer, wo das von recv empfangene steht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960085</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 19:57:49 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 20:08:44 GMT]]></title><description><![CDATA[<p>#pointer# schrieb:</p>
<blockquote>
<p>aja...danke joomoo.<br />
wie kann ich es denn dann auf der anderen Seite prüfen, wenn ich shutdown beim Server eingesetz habe?</p>
<pre><code>tmp=recv(...);
</code></pre>
<p>ist dann tmp mit EOF definiert, oder in dem Buffer, wo das von recv empfangene steht?</p>
</blockquote>
<p>tmp ist dann genau 0</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960105</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sat, 07 Jan 2006 20:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 20:12:32 GMT]]></title><description><![CDATA[<p>welches Flag muss ich da denn jetzt genau benutzen, um zu sagen, dass jetzt nichts mehr kommt?</p>
<p>sorry für die vielen Fragen, aber es ist schon ziemlich wichtig für mich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/960110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960110</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 07 Jan 2006 20:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 20:18:09 GMT]]></title><description><![CDATA[<p>#pointer# schrieb:</p>
<blockquote>
<p>welches Flag muss ich da denn jetzt genau benutzen, um zu sagen, dass jetzt nichts mehr kommt?</p>
<p>sorry für die vielen Fragen, aber es ist schon ziemlich wichtig für mich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Server;</p>
<pre><code class="language-cpp">// accecpt
        send(Socket,&quot;abc&quot;,4,0);
        shutdown(Socket,SD_SEND); // Socket schließen
</code></pre>
<p>Client:</p>
<pre><code class="language-cpp">// connect
        char buf[4];
        recv(Socket,buf,4,0); // normale übertragung
        int a = recv(Socket,buf,4,0); // diesmal wird a gleich 0 sein
        std::cout &lt;&lt; a;
</code></pre>
<p>Schau dich in der MSDN nochmal um, falls noch fragen offen sind.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960115</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sat, 07 Jan 2006 20:18:09 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 21:36:06 GMT]]></title><description><![CDATA[<p>also ich finde es nicht gut den socket jedesmal zu schliessen und &quot;recv(socket,pBuffer,256,0);&quot; sagt nicht das da immer 256 zeichen dirin liegen auch wenn 256 zeichen gesendet werden.</p>
<p>zu prüfen auf /0 find ich auch keine gute lösung.</p>
<p>warum lässt es sich nicht im vorfeld ermitteln wie viele zeichen gesendet werden... mal dumm gefragt?</p>
<p>und send, rev ohne thred... da klemmt doch alles!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960205</guid><dc:creator><![CDATA[vdittrich]]></dc:creator><pubDate>Sat, 07 Jan 2006 21:36:06 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 21:40:41 GMT]]></title><description><![CDATA[<p>vdittrich schrieb:</p>
<blockquote>
<p>also ich finde es nicht gut den socket jedesmal zu schliessen</p>
</blockquote>
<p>Wieso nicht? Wenn das Programm danach fertig ist?</p>
<blockquote>
<p>und &quot;recv(socket,pBuffer,256,0);&quot; sagt nicht das da immer 256 zeichen dirin liegen auch wenn 256 zeichen gesendet werden.</p>
</blockquote>
<p>Ja, hat auch keiner gesagt.</p>
<blockquote>
<p>zu prüfen auf /0 find ich auch keine gute lösung.</p>
</blockquote>
<p>Ist es auch nicht bei binär Dateien.</p>
<blockquote>
<p>warum lässt es sich nicht im vorfeld ermitteln wie viele zeichen gesendet werden... mal dumm gefragt?</p>
</blockquote>
<p>Ja das ist eigentlich die beste Lösung: Vorher die DAteigröße am besten als __int64 rüberschicken und dann solange empfangen, bis man alles hat.</p>
<blockquote>
<p>und send, rev ohne thred... da klemmt doch alles!!</p>
</blockquote>
<p>Darum geht's ja auch gar nicht.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960207</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sat, 07 Jan 2006 21:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sat, 07 Jan 2006 22:22:00 GMT]]></title><description><![CDATA[<p>ich will ja auch nicht streiten, kenne die anforderung nicht und wenn ich eine classe entwickle, dann sollte sie allgemein sein.</p>
<p>geade bei socket verwende ich lieber threads, schon von der seite das man nie weis ob die &quot;leitung&quot; klemmt.</p>
<p>abbruchzeichen zu senden bzw. darauf zu prüfen halt ich für eine schlechte lösung... meine ansichten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/960262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/960262</guid><dc:creator><![CDATA[vdittrich]]></dc:creator><pubDate>Sat, 07 Jan 2006 22:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to EOF bei send&#x2F;recv ??? on Sun, 08 Jan 2006 19:55:32 GMT]]></title><description><![CDATA[<p>vdittrich schrieb:</p>
<blockquote>
<p>ich will ja auch nicht streiten</p>
</blockquote>
<p>Ich auch nicht. Das mag ich immer an Foren nicht: Niemand hört deinen Tonfall. Einige Sachen können nett gesagt was ganz anderes bedeuten als nicht nett oder so.</p>
<blockquote>
<p>, kenne die anforderung nicht und wenn ich eine classe entwickle, dann sollte sie allgemein sein.</p>
</blockquote>
<p>Ich glaube er will erst mal versuchen ein einfaches Programm zu schreiben, als gleich das ganze in eine Klasse zu packen.</p>
<blockquote>
<p>geade bei socket verwende ich lieber threads,</p>
</blockquote>
<p>Ich auch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<blockquote>
<p>abbruchzeichen zu senden bzw. darauf zu prüfen halt ich für eine schlechte lösung... meine ansichten</p>
</blockquote>
<p>ist nicht die ideallösung, vor allem wenn danach noch was kommen soll, da hast du Recht.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961210</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sun, 08 Jan 2006 19:55:32 GMT</pubDate></item></channel></rss>