<?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[Absturz des Programms bei der Funktion recv]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade dabei einen IRC Bot zu schreiben.<br />
Doch leider spinnt irgendwie die &quot;recv&quot; Funktion.<br />
Codeausschnitt:</p>
<pre><code class="language-cpp">char puffer[1024];
int err;

			      for(;;) {
          memset((char *)puffer,0,sizeof(puffer));
		  err = recv(socket,puffer,sizeof(puffer),0);
		    if(err == SOCKET_ERROR)  {
				closesocket(socket);
				 return 1;
			}

		      printf(&quot;%s&quot;,puffer);
</code></pre>
<p>Es wird zwar etwas ausgegeben doch dann schließt sich manchmal das Programm oder ich erhalte folgende Fehlermeldung:</p>
<p><a href="http://img25.imageshack.us/my.php?image=errorhkb.jpg" rel="nofollow">http://img25.imageshack.us/my.php?image=errorhkb.jpg</a></p>
<p>Wenn ich jetzt aber &quot;puffer&quot; vergrößer geht es.<br />
Aber es muss doch auch ne andere möglichkeit geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238698/absturz-des-programms-bei-der-funktion-recv</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 01:14:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238698.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Apr 2009 14:09:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absturz des Programms bei der Funktion recv on Tue, 14 Apr 2009 14:09:45 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade dabei einen IRC Bot zu schreiben.<br />
Doch leider spinnt irgendwie die &quot;recv&quot; Funktion.<br />
Codeausschnitt:</p>
<pre><code class="language-cpp">char puffer[1024];
int err;

			      for(;;) {
          memset((char *)puffer,0,sizeof(puffer));
		  err = recv(socket,puffer,sizeof(puffer),0);
		    if(err == SOCKET_ERROR)  {
				closesocket(socket);
				 return 1;
			}

		      printf(&quot;%s&quot;,puffer);
</code></pre>
<p>Es wird zwar etwas ausgegeben doch dann schließt sich manchmal das Programm oder ich erhalte folgende Fehlermeldung:</p>
<p><a href="http://img25.imageshack.us/my.php?image=errorhkb.jpg" rel="nofollow">http://img25.imageshack.us/my.php?image=errorhkb.jpg</a></p>
<p>Wenn ich jetzt aber &quot;puffer&quot; vergrößer geht es.<br />
Aber es muss doch auch ne andere möglichkeit geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695767</guid><dc:creator><![CDATA[recv()]]></dc:creator><pubDate>Tue, 14 Apr 2009 14:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz des Programms bei der Funktion recv on Tue, 14 Apr 2009 14:49:28 GMT]]></title><description><![CDATA[<p>Lies nach was recv zurück gibt.<br />
Dann wirst Du feststellen, dass nicht unbedingt ein null terminiertes char array im puffer ist, was bei printf zu problemen führt.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695797</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 14 Apr 2009 14:49:28 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz des Programms bei der Funktion recv on Wed, 15 Apr 2009 19:53:21 GMT]]></title><description><![CDATA[<p>Ok an &quot;printf&quot; liegt es nicht.<br />
&quot;recv()&quot; gibt mir -1 zurück.<br />
Darauf hin habe ich mir mit &quot;WSAGetLastError()&quot; nen Fehlercode ausgeben lassen und der Fehlercode ist:</p>
<pre><code>WSAENOTSOCK
10038

Socket operation on nonsocket.

    An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
</code></pre>
<p>Aber des ist irgendwie komisch recv() gibt mir vorher schon was aus und ganz plötzlich gibts da en Fehlercode.<br />
Wie könnte ich den Fehlercode beheben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696432</guid><dc:creator><![CDATA[recv()]]></dc:creator><pubDate>Wed, 15 Apr 2009 19:53:21 GMT</pubDate></item><item><title><![CDATA[Reply to Absturz des Programms bei der Funktion recv on Thu, 16 Apr 2009 12:54:36 GMT]]></title><description><![CDATA[<p>Ich glaube ich habe den Fehler gefunden:</p>
<pre><code class="language-cpp">if (strstr(puffer,&quot;001&quot;) == 0 || strstr(puffer,&quot;005&quot;) == 0)  {
			     strncat(puffer,&quot;JOIN &quot;,strlen(&quot;JOIN &quot;)+1);
				 strncat(puffer,channel,strlen(channel)+1);

			send(socket,puffer,strlen(puffer)+1,0);
					}
</code></pre>
<p>Wenn ich diese Überprüfung ausklammere geht es komischer weiße.<br />
Aber wieso?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696675</guid><dc:creator><![CDATA[recv()]]></dc:creator><pubDate>Thu, 16 Apr 2009 12:54:36 GMT</pubDate></item></channel></rss>