<?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[Problem mit send();]]></title><description><![CDATA[<p>Also, send() kann ja bekannterweise -1 oder die Anzahl gesendeter Zeichen zurückgeben...</p>
<p>Ausschnitt des Programmes:</p>
<pre><code class="language-cpp">string lol(&quot;Ich bin ein über sinnloser Text der vieleicht versendet wird&quot;);
int irc = -1;

irc = send(sende_socket,lol.c_str(),lol.size(),0);

if(irc &lt; lol.size()){
cout &lt;&lt; &quot;Nicht genug Zeichen gesendet&quot; &lt;&lt; endl;
}if(irc == -1){
cout &lt;&lt; &quot;Konnte Zeichen nicht senden&quot; &lt;&lt; endl;
return ;
}
</code></pre>
<p>Soo und nun meine Frage:<br />
Was ist wenn</p>
<pre><code class="language-cpp">irc &lt; lol.size()
</code></pre>
<p>ist (das bedeutet das weniger Zeichen gesendet wurden als lol.size() is klar)<br />
aber welche Zeichen wurden jetzt gesendet?</p>
<p>Vieleicht ist es so:</p>
<pre><code class="language-cpp">//gesendete Zeichen:
string gesendeteZeichen = lol.substr(0,irc);
</code></pre>
<p>ist es so?<br />
wenn ja könnte man dieses Problem ja ziemlich einfach lösen <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="😃"
    /> <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="😃"
    /><br />
wenn nicht dann müßte mein Server das Packet verwerfen und auf eins mit einer richtigen Größe warten....</p>
<p>Danke im voraus</p>
<p>cout &lt;&lt; &quot;mfg&quot; &lt;&lt; endl;<br />
cout &lt;&lt; &quot;pf&quot; &lt;&lt; endl;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196350/problem-mit-send</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 02:24:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196350.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Oct 2007 18:18:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:18:29 GMT]]></title><description><![CDATA[<p>Also, send() kann ja bekannterweise -1 oder die Anzahl gesendeter Zeichen zurückgeben...</p>
<p>Ausschnitt des Programmes:</p>
<pre><code class="language-cpp">string lol(&quot;Ich bin ein über sinnloser Text der vieleicht versendet wird&quot;);
int irc = -1;

irc = send(sende_socket,lol.c_str(),lol.size(),0);

if(irc &lt; lol.size()){
cout &lt;&lt; &quot;Nicht genug Zeichen gesendet&quot; &lt;&lt; endl;
}if(irc == -1){
cout &lt;&lt; &quot;Konnte Zeichen nicht senden&quot; &lt;&lt; endl;
return ;
}
</code></pre>
<p>Soo und nun meine Frage:<br />
Was ist wenn</p>
<pre><code class="language-cpp">irc &lt; lol.size()
</code></pre>
<p>ist (das bedeutet das weniger Zeichen gesendet wurden als lol.size() is klar)<br />
aber welche Zeichen wurden jetzt gesendet?</p>
<p>Vieleicht ist es so:</p>
<pre><code class="language-cpp">//gesendete Zeichen:
string gesendeteZeichen = lol.substr(0,irc);
</code></pre>
<p>ist es so?<br />
wenn ja könnte man dieses Problem ja ziemlich einfach lösen <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="😃"
    /> <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="😃"
    /><br />
wenn nicht dann müßte mein Server das Packet verwerfen und auf eins mit einer richtigen Größe warten....</p>
<p>Danke im voraus</p>
<p>cout &lt;&lt; &quot;mfg&quot; &lt;&lt; endl;<br />
cout &lt;&lt; &quot;pf&quot; &lt;&lt; endl;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393729</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:18:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:28:23 GMT]]></title><description><![CDATA[<p>pfUrz schrieb:</p>
<blockquote>
<p>Was ist wenn</p>
<pre><code class="language-cpp">irc &lt; lol.size()
</code></pre>
<p>ist (das bedeutet das weniger Zeichen gesendet wurden als lol.size() is klar)<br />
aber welche Zeichen wurden jetzt gesendet?</p>
<p>Vieleicht ist es so:</p>
<pre><code class="language-cpp">//gesendete Zeichen:
string gesendeteZeichen = lol.substr(0,irc);
</code></pre>
<p>ist es so?</p>
</blockquote>
<p>Ja, das heißt dann, dass nur die ersten irc Bytes gesendet werden konnten <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>
<p>Gegenfrage: Warum schreibst du eigentlich nicht gleich <code>int irc = send(...</code> , sondern verteilst es auf 2 Zeilen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393734</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:30:57 GMT]]></title><description><![CDATA[<p>Keine Ahnung einfach so <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>
<p>ne also steht der Returnwert für die ERSTEN gesendeten Zeichen?</p>
<p>wenn ja dann danke <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/1393736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393736</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:30:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:36:48 GMT]]></title><description><![CDATA[<p>ja so ist es</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393746</guid><dc:creator><![CDATA[tenchou]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:49:11 GMT]]></title><description><![CDATA[<p>Cool danke ich habe das jetzt so gelöst:</p>
<pre><code class="language-cpp">//by pfUrz @ www.c-plusplus.net
    string msg(&quot;Ich bin ún String der mit der string klasse erstellt wurde ....&quot;);
    string substring(&quot;&quot;);
    int irc = 0;

    irc = send(sock,msg.c_str(),msg.size(),0);
    if(irc == -1){cout &lt;&lt; &quot;error send() returned -1&quot; &lt;&lt; endl;return 0;}
    if(irc &lt; msg.size()){
        while(irc &lt; msg.size()){
            substring = msg.substr(irc,msg.size());
            msg = substring;
            irc = send(sock,msg.c_str(),msg.size(),0);
            if(irc == -1){cout &lt;&lt; &quot;error send() returned -1&quot; &lt;&lt; endl;return 0;}
        }
    }
    cout &lt;&lt; &quot;Alles wurde erfolgreich gesendet! :D&quot; &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1393753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393753</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:49:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:57:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//by Badestrand @ www.c-plusplus.net
    string msg(&quot;Ich bin ún String der mit der string klasse erstellt wurde ....&quot;);

    int irc = send(sock,msg.c_str(),msg.size(),0);
    if(irc == -1){cout &lt;&lt; &quot;error send() returned -1&quot; &lt;&lt; endl;return 0;}

    if ( irc &lt; msg.size() ){
        const char* tosend = msg.c_str() + irc;
        const char* end = msg.c_str() + msg.size() + 1;
        while ( to_send &lt; end ) {
            irc = send( sock, tosend, end-tosend /* +1? */, 0 );
            if(irc == -1){cout &lt;&lt; &quot;error send() returned -1&quot; &lt;&lt; endl;return 0;}
            tosend += irc;
        }
    cout &lt;&lt; &quot;Alles wurde erfolgreich gesendet! :D&quot; &lt;&lt; endl;
</code></pre>
<p>So gehts auch, fällt das wiederholte substr weg <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>
<p>edit: So <em>sollte</em> es auch gehen, ist ungetestet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393757</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:57:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 18:59:57 GMT]]></title><description><![CDATA[<p>meins geht nicht??<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393764</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Sun, 28 Oct 2007 18:59:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 19:00:40 GMT]]></title><description><![CDATA[<p>doch doch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393766</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 28 Oct 2007 19:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Sun, 28 Oct 2007 19:04:24 GMT]]></title><description><![CDATA[<p>Cool danke für die Hilfe Leute(@Badestrand , tenchou ) <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>schönen Abend noch <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>mit freundlichen Grüßen pfUrz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393769</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Sun, 28 Oct 2007 19:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 14:20:43 GMT]]></title><description><![CDATA[<p>Oh verdammt hab noche einmal drüber geschlafen so hier ist mein Code richtig:</p>
<pre><code class="language-cpp">//by pfUrz @ www.c-plusplus.net
    string msg(&quot;Ich bin ún String der mit der string klasse erstellt wurde ....&quot;);
    string substring(&quot;&quot;);
    int irc = 0;

    irc = send(sock,msg.c_str(),msg.size(),0);
    if(irc == -1){cout &lt;&lt; &quot;error send() returned -1&quot; &lt;&lt; endl;return 0;}
    if(irc &lt; msg.size()){
        while(irc &lt; msg.size()){
            substring = msg.substr(irc,msg.size()-irc); // -irc vergessen :-)
            msg = substring;
            irc = send(sock,msg.c_str(),msg.size(),0);
            if(irc == -1){cout &lt;&lt; &quot;error send() returned -1&quot; &lt;&lt; endl;return 0;}
        }
    }
    cout &lt;&lt; &quot;Alles wurde erfolgreich gesendet! :D&quot; &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1394135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394135</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Mon, 29 Oct 2007 14:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 14:53:15 GMT]]></title><description><![CDATA[<p>bitte nimm den Code von Badestrand. deiner ist echt übel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394156</guid><dc:creator><![CDATA[00]]></dc:creator><pubDate>Mon, 29 Oct 2007 14:53:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 15:30:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool mysend(int socket, char const *str, std::size_t size, int flags = 0) {
  assert(str);
  std::size_t offset = 0;
  while(offset &lt; size) {
    ssize_t ret = ::send(socket, str + offset, size - offset, flags);
    if(ret &lt; 0)
      return false; // oder exception werfen
    offset += ret;
  }
  return true;
}

bool mysend(int socket, std::string const &amp;str, int flags = 0) {
  return mysend(socket, str.c_str(), str.size(), flags);
}

// ...
if(mysend(sock, str))
  std::cout &lt;&lt; &quot;alles in Ordnung\n&quot;;
else
  std::cerr &lt;&lt; &quot;upsi. Fehler\n&quot;;
</code></pre>
<p>so würde ich das schreiben. (ungetestet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394190</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 29 Oct 2007 15:30:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 15:51:04 GMT]]></title><description><![CDATA[<p>Joar danke <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/142">@rüdiger</a> dein Code sieht gut aus und ich verstehe ihn auch <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="🙂"
    /><br />
aber solange ich auch meinen Code verstehe und er funktioniert (ja er funktioniert tatsächlich^^)<br />
werd ich meinen Code verwenden</p>
<p>danke @ all</p>
<p>schön NachMittag noch</p>
<p>mfg ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394206</guid><dc:creator><![CDATA[pfUrz]]></dc:creator><pubDate>Mon, 29 Oct 2007 15:51:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 17:37:29 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<pre><code class="language-cpp">bool mysend(int socket, char const *str, std::size_t size, int flags = 0) {
  assert(str);
  std::size_t offset = 0;
  while(offset &lt; size) {
    ssize_t ret = ::send(socket, str + offset, size - offset, flags);
    if(ret &lt; 0)
      return false; // oder exception werfen
    offset += ret;
  }
  return true;
}

bool mysend(int socket, std::string const &amp;str, int flags = 0) {
  return mysend(socket, str.c_str(), str.size(), flags);
}

// ...
if(mysend(sock, str))
  std::cout &lt;&lt; &quot;alles in Ordnung\n&quot;;
else
  std::cerr &lt;&lt; &quot;upsi. Fehler\n&quot;;
</code></pre>
<p>so würde ich das schreiben. (ungetestet)</p>
</blockquote>
<p>Ich nicht, da size_t als unsigned int definiert ist und somit nie &lt; 0 werden kann, wirst du bei einem socket error ruckzuck ein problem bekommen.</p>
<pre><code>int offset = 0;
int bytes_to_send = (int) strlen( str );
while( bytes_to_send &gt; 0 )
{
	int bytes_sent = send( sock, str+offset, bytes_to_send, 0 );
	if( bytes_sent == -1 )
		return( false );
	else
	{
		bytes_to_send -= bytes_sent;
		offset += bytes_sent;
	}
	return( true );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1394275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394275</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Mon, 29 Oct 2007 17:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 17:59:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16940">@EOP</a><br />
offset soll ja auch nicht kleiner als 0 werden! Das wäre ein fataler Fehler. int ist dagegen die falsche Wahl, da size_t größer als int sein kann. Dann endet man mit Überläufen. (bzw. schon für alle Werte, die größer sind als std::numeric_limits&lt;int&gt;::max und das ist bei unsigned vs signed ja nicht schwierig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394286</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 29 Oct 2007 17:59:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 18:07:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/142">@rüdiger</a><br />
:<br />
ich meinte auch nicht offset sondern natürlich dein ret:</p>
<pre><code>ssize_t ret = ::send(socket, str + offset, size - offset, flags);
    if(ret &lt; 0)
</code></pre>
<p>sollte ja wohl size_t ret heissen?</p>
<p>int ist die falsche Wahl, wenn nur int erlaubt ist?<br />
Deklaration von send:<br />
<strong>int</strong> send( SOCKET s, const char* buf, <strong>int</strong> len, int flags );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394289</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Mon, 29 Oct 2007 18:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 18:28:41 GMT]]></title><description><![CDATA[<pre><code>while(offset &lt; size) {
    ssize_t ret = ::send(socket, str + offset, size - offset, flags);
    if(ret &lt; 0)
      return false; // oder exception werfen
    offset += ret;
</code></pre>
<p>Was macht dein code wenn beim ersten Versuch -1 (unsigned 0xFFFFFFFF) zurückgegeben wird?<br />
Er addiert ret (0xFFFFFFFF) zum string und bekommt eine Zugriffsverletzung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394299</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Mon, 29 Oct 2007 18:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 19:43:34 GMT]]></title><description><![CDATA[<p>ne, das soll schon ssize_t heißen. Das s steht für signed.</p>
<pre><code class="language-cpp">ssize_t send(int s, const void *msg, size_t len, int flags);
</code></pre>
<p>Siehe POSIX Standard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1394332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394332</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 29 Oct 2007 19:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit send(); on Mon, 29 Oct 2007 19:46:47 GMT]]></title><description><![CDATA[<p>EOP schrieb:</p>
<blockquote>
<pre><code>while(offset &lt; size) {
    ssize_t ret = ::send(socket, str + offset, size - offset, flags);
    if(ret &lt; 0)
      return false; // oder exception werfen
    offset += ret;
</code></pre>
<p>Was macht dein code wenn beim ersten Versuch -1 (unsigned 0xFFFFFFFF) zurückgegeben wird?<br />
Er addiert ret (0xFFFFFFFF) zum string und bekommt eine Zugriffsverletzung...</p>
</blockquote>
<p>Wenn -1 zurück gegeben wird, dann gibt er false zurück. Selbst wenn es einen Overflow gäben könnte, dann würde vorher <code>offset &lt; size</code> geprüft werden <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/1394335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1394335</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 29 Oct 2007 19:46:47 GMT</pubDate></item></channel></rss>