<?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[buffer wird nicht erneuert]]></title><description><![CDATA[<p>hey, ich poste mal in dieses Forum, da es eigentlich weniger mit der Winapi sondern C++ zu tun hat.<br />
Also folgender Code:</p>
<pre><code class="language-cpp">string bufffer;
	while(1)
	{
		bufffer.clear();
		recv(s2, (char *)bufffer.c_str(), 50, 0);
		MessageBox(0, bufffer.c_str(), szAppName, 0);
	}
</code></pre>
<p>Wenn ich vom clienten z.b. den Text &quot;Hallo&quot; schicke wird von der MessageBox Hallo ausgegeben. Wenn ich gleich danach z.b. nur ein &quot;Z&quot; schicke, wird Zallo ausgegeben. Warum ist das so? Ich habe doch vor recv den buffer geleert also müsste nichts mehr drinnen sein? Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225421/buffer-wird-nicht-erneuert</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 12:04:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225421.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Oct 2008 09:27:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:27:12 GMT]]></title><description><![CDATA[<p>hey, ich poste mal in dieses Forum, da es eigentlich weniger mit der Winapi sondern C++ zu tun hat.<br />
Also folgender Code:</p>
<pre><code class="language-cpp">string bufffer;
	while(1)
	{
		bufffer.clear();
		recv(s2, (char *)bufffer.c_str(), 50, 0);
		MessageBox(0, bufffer.c_str(), szAppName, 0);
	}
</code></pre>
<p>Wenn ich vom clienten z.b. den Text &quot;Hallo&quot; schicke wird von der MessageBox Hallo ausgegeben. Wenn ich gleich danach z.b. nur ein &quot;Z&quot; schicke, wird Zallo ausgegeben. Warum ist das so? Ich habe doch vor recv den buffer geleert also müsste nichts mehr drinnen sein? Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603264</guid><dc:creator><![CDATA[recvuser!]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:32:57 GMT]]></title><description><![CDATA[<p>recvuser! schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">recv(s2, (char *)bufffer.c_str(), 50, 0);
</code></pre>
</blockquote>
<p>Dir ist hoffentlich bewusst das c_str() einen Konstanten Buffer liefert, dein cast erzeugt ein Undefiniertes Verhalten (voraussichtlich mit Datenkorruption).</p>
<p>In den Buffer eines Strings DARF man nicht von Außen schreiben!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603268</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:36:09 GMT]]></title><description><![CDATA[<p>Hmm, fragt sich was clear intern macht. Vielleicht wird ja nur eine 0 an die erste Stelle geschrieben, die du dann mit recv wieder überschreibst. Du schreibst ja auch per c_str-Pointer in den String, das ist ja nicht unbedingt der übliche Weg...</p>
<p>buffffer schreibt man übrigens mit 4 'f'! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603270</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:36:09 GMT</pubDate></item><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:43:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char bufffer[50];
	while(1)
	{
		recv(s2, (char *)bufffer, 50, 0);
		MessageBox(0, bufffer, szAppName, 0);
}
</code></pre>
<p>geht genauso wenig. Wenn ich Hallo sende gibt es Hallo aus. Wenn ich danach i sende gibt es erst i alleine aus und dann iallo in einer 2. messagebox</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603277</guid><dc:creator><![CDATA[recvuser!]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:43:15 GMT</pubDate></item><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:45:56 GMT]]></title><description><![CDATA[<p>recvuser! schrieb:</p>
<blockquote>
<p>Wenn ich Hallo sende gibt es Hallo aus. Wenn ich danach i sende gibt es erst i alleine aus und dann iallo in einer 2. messagebox</p>
</blockquote>
<p>Wenn du deine Daten nicht nullterminiert verschickst, werden sie auch nicht nullterminiert ankommen. Dann musst du dich darum schon selbst kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603278</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:47:30 GMT]]></title><description><![CDATA[<p>recvuser! schrieb:</p>
<blockquote>
<pre><code class="language-cpp">char bufffer[50];
	while(1)
	{
		recv(s2, (char *)bufffer, 50, 0);
		MessageBox(0, bufffer, szAppName, 0);
}
</code></pre>
<p>geht genauso wenig. Wenn ich Hallo sende gibt es Hallo aus. Wenn ich danach i sende gibt es erst i alleine aus und dann iallo in einer 2. messagebox</p>
</blockquote>
<p>Witzbold! <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="😃"
    /> Hier hast du ja auch kein &quot;clear-ähnliches&quot; Verhalten eingebaut, sprich ein Nullen des Puffers. Wenn dich die alten Werte nicht interessieren, dann leere buffer einfach vor dem Empfangen (z.B. mit memset).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603279</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to buffer wird nicht erneuert on Thu, 23 Oct 2008 09:49:41 GMT]]></title><description><![CDATA[<p>ouuuargh wie peinlich! Hab doch glatt vergessen die 0 mitzuschicken -.-<br />
danke für die Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603281</guid><dc:creator><![CDATA[recvuser!]]></dc:creator><pubDate>Thu, 23 Oct 2008 09:49:41 GMT</pubDate></item></channel></rss>