<?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[kann mir jemand diesen code erklären]]></title><description><![CDATA[<pre><code class="language-cpp">char* RecvData(SOCKET s, unsigned bytes)
{
    unsigned bytes_read = 0;
	static char tempBuff[900000];
	unsigned r;
    while ( bytes_read != bytes )
    {
        r = recv( s, tempBuff+bytes_read, bytes-bytes_read, 0 );

        // Grad keine Daten zum empfangen da?
        if ( r==-1 &amp;&amp; WSAGetLastError()==WSAEWOULDBLOCK )
            Sleep( 20 );
        // Fehler bzw Verbindung geschlossen?
        else if ( r &lt;= 0 )
		{
//Fehler 
		}
		else
            bytes_read += r;
    }
    return tempBuff;
}
</code></pre>
<p>Mit diesen Code kann man eine datei empfangen die in einem buffer ist.<br />
Habe den hier im Forum gefunden (eventuell Badestrand?)<br />
warum muss man hier mehr recv machen? Ich dachte eine Recv empfängt alles.<br />
und wie groß sollte ich temp buff setzten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224504/kann-mir-jemand-diesen-code-erklären</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 17:08:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224504.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Oct 2008 13:26:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 13:26:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* RecvData(SOCKET s, unsigned bytes)
{
    unsigned bytes_read = 0;
	static char tempBuff[900000];
	unsigned r;
    while ( bytes_read != bytes )
    {
        r = recv( s, tempBuff+bytes_read, bytes-bytes_read, 0 );

        // Grad keine Daten zum empfangen da?
        if ( r==-1 &amp;&amp; WSAGetLastError()==WSAEWOULDBLOCK )
            Sleep( 20 );
        // Fehler bzw Verbindung geschlossen?
        else if ( r &lt;= 0 )
		{
//Fehler 
		}
		else
            bytes_read += r;
    }
    return tempBuff;
}
</code></pre>
<p>Mit diesen Code kann man eine datei empfangen die in einem buffer ist.<br />
Habe den hier im Forum gefunden (eventuell Badestrand?)<br />
warum muss man hier mehr recv machen? Ich dachte eine Recv empfängt alles.<br />
und wie groß sollte ich temp buff setzten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1596965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1596965</guid><dc:creator><![CDATA[markus10k]]></dc:creator><pubDate>Fri, 10 Oct 2008 13:26:41 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 14:20:24 GMT]]></title><description><![CDATA[<blockquote>
<p>warum muss man hier mehr recv machen? Ich dachte eine Recv empfängt alles</p>
</blockquote>
<p>Tut es nicht. Es kann durchaus sein, dass nur einige Bytes empfangen werden und danach nochmals recv aufgerufen werden muss.</p>
<p>Lies hier die Doku: <a href="http://msdn.microsoft.com/en-us/library/ms740121.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms740121.aspx</a></p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1597006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597006</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 10 Oct 2008 14:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 14:48:23 GMT]]></title><description><![CDATA[<p>markus10k schrieb:</p>
<blockquote>
<p>Habe den hier im Forum gefunden (eventuell Badestrand?)</p>
</blockquote>
<p>Ich hatte ihn so ähnlich gepostet, allerdings ohne den static char-Buffer, den ich übrigens als schlechte Idee empfinde: Erstens ist die Funktion nicht re-entrant, zweitens könnte der Buffer nicht ausreichen und drittens wird evtl der Stack arg belastet.<br />
Deshalb die Funktion eher so gestalten:</p>
<pre><code class="language-cpp">bool RecvDataBlocking(SOCKET s, unsigned bytes, char* buffer )
{
    unsigned bytes_read = 0;
    while ( bytes_read != bytes )
    {
        int r = recv( s, buffer+bytes_read, bytes-bytes_read, 0 );

        // Grad keine Daten zum empfangen da?
        if ( r==-1 &amp;&amp; WSAGetLastError()==WSAEWOULDBLOCK )
            Sleep( 20 );
        // Fehler bzw Verbindung geschlossen?
        else if ( r &lt;= 0 )
            return false;
        else
            bytes_read += r;
    }
    return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1597031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597031</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 10 Oct 2008 14:48:23 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 14:52:02 GMT]]></title><description><![CDATA[<p>wieso wird der stack belastet lol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1597034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597034</guid><dc:creator><![CDATA[ebehard]]></dc:creator><pubDate>Fri, 10 Oct 2008 14:52:02 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 14:55:47 GMT]]></title><description><![CDATA[<p>Wegen den 900 KB? Soweit ich weiß, werden die doch meistens auf dem Stack abgelegt? Oder wird da was in der Data-Section reserviert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1597038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597038</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 10 Oct 2008 14:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 15:51:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">static
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1597079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597079</guid><dc:creator><![CDATA[ebehard]]></dc:creator><pubDate>Fri, 10 Oct 2008 15:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 17:07:41 GMT]]></title><description><![CDATA[<p>ebehard schrieb:</p>
<blockquote>
<pre><code class="language-cpp">static
</code></pre>
</blockquote>
<p>Ich weiß, dass der static Buffer static ist. Meine Frage war, wo er denn abgelegt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1597109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597109</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 10 Oct 2008 17:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 21:56:32 GMT]]></title><description><![CDATA[<p>auf jeden fall nicht im stack, sonst wär er nicht stattic.<br />
Mein tip wär im uninitialisierten Datensegment.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1597220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597220</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Fri, 10 Oct 2008 21:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to kann mir jemand diesen code erklären on Fri, 10 Oct 2008 22:11:32 GMT]]></title><description><![CDATA[<p>Ups, war nen bescheuerter Denkfehler mit dem Stack (würde ja allein auch wegen Multithreading nicht funktionieren). Na gut, dann wird's wohl das Datensegment sein, oder gibt's noch ähnliche Areas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1597223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1597223</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 10 Oct 2008 22:11:32 GMT</pubDate></item></channel></rss>