<?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[Maximale größe beim Empfangen mit recv]]></title><description><![CDATA[<p>Hi,<br />
Ich empfange Daten mit recv, weiß aber vorher immer genau wieviele bytes ich empfangen will.<br />
Kann ich dann einfach recv(fd, entsprechend_große_variable, varaible_mit_der_länge, 0) machen, wobei die varaible_mit_der_länge eine bis zu sieben-stellige Zahl enthalten kann, oder hat TCP/IP eine maximalgröße für recv (davon gehe ich eigentlich aus)?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178933/maximale-größe-beim-empfangen-mit-recv</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Jul 2026 14:23:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178933.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Apr 2007 18:52:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 18:52:22 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich empfange Daten mit recv, weiß aber vorher immer genau wieviele bytes ich empfangen will.<br />
Kann ich dann einfach recv(fd, entsprechend_große_variable, varaible_mit_der_länge, 0) machen, wobei die varaible_mit_der_länge eine bis zu sieben-stellige Zahl enthalten kann, oder hat TCP/IP eine maximalgröße für recv (davon gehe ich eigentlich aus)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267323</guid><dc:creator><![CDATA[Luke-2]]></dc:creator><pubDate>Mon, 16 Apr 2007 18:52:22 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 18:56:14 GMT]]></title><description><![CDATA[<p>Die Idee ist, dass du recv sagst, wieviele Bytes _maximal_ empfangen werden sollen, damit dein Puffer nicht überläuft. (Denn schließlich müssen die empfangenen Bytes ja irgendwo hin.)</p>
<p>Nach Aufruf der Funktion bekommst du gesagt, wieviele Bytes tatsächlich gelesen wurden. Das können durchaus weniger sein als du dir gedacht hast, aber gewiss nicht mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267327</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Apr 2007 18:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 19:00:26 GMT]]></title><description><![CDATA[<p>Nun, ich weiß ja vorher genau wieviel Bytes kommen werden. Mein Problem ist eher wenn recv eine maximale Größe hat, muss ich das ganze in ne Schleife packen, wenn nicht, kann ich mir das sparen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267329</guid><dc:creator><![CDATA[Luke-2]]></dc:creator><pubDate>Mon, 16 Apr 2007 19:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 19:03:13 GMT]]></title><description><![CDATA[<p>Es gibt keine garantierte Mindestanzahl an Bytes, auch wenn die Wahrscheinlichkeit für eine kleine Anzahl größer ist. Um deine Schleife wirst du nicht herumkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267332</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Apr 2007 19:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 19:06:57 GMT]]></title><description><![CDATA[<p>Was meinst du mit garantierter Midenstanzahl? Ich weiß immer genau wieviel Bytes kommen werden. Wie auch immer, ich werd zur Sicherheit ne Schleife verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267334</guid><dc:creator><![CDATA[Luke-2]]></dc:creator><pubDate>Mon, 16 Apr 2007 19:06:57 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 19:13:49 GMT]]></title><description><![CDATA[<p>Das ist ineffizient. Versuche immer große Blöcke mit recv zu holen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267338</guid><dc:creator><![CDATA[----------]]></dc:creator><pubDate>Mon, 16 Apr 2007 19:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 19:15:26 GMT]]></title><description><![CDATA[<p>Luke-2 schrieb:</p>
<blockquote>
<p>Ich weiß immer genau wieviel Bytes kommen werden.</p>
</blockquote>
<p>Ne tust du nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267339</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Mon, 16 Apr 2007 19:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 19:23:12 GMT]]></title><description><![CDATA[<p>Black Shadow schrieb:</p>
<blockquote>
<p>Luke-2 schrieb:</p>
<blockquote>
<p>Ich weiß immer genau wieviel Bytes kommen werden.</p>
</blockquote>
<p>Ne tust du nicht.</p>
</blockquote>
<p>Erklär warum.</p>
<p>Ich schicke Immer erst 7 Byte für die Länge, danach entsprechend Daten.</p>
<p>PS: Ich würde jetzt so vorgehen: Mit recv die Daten mit der übermittelten Länge laden. Wenn die tatsächlich empfangenen Daten &lt; als die erwartete Länge, entsprechend weiterladen. Das wiederholen bis alle Daten geladen sind. Wär das ok?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267342</guid><dc:creator><![CDATA[Luke-2]]></dc:creator><pubDate>Mon, 16 Apr 2007 19:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 20:02:59 GMT]]></title><description><![CDATA[<p>Die Daten werden nach und nach übertragen und sind nicht schlagartig da, folglich kannst du nicht wissen wieviel schon übertragen wurde.<br />
Du weißt nach den ersten bytes vllt. wieviel kommen sollte, aber wann weißt du nicht und ob auch nicht (abbruch zb.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267359</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Mon, 16 Apr 2007 20:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to Maximale größe beim Empfangen mit recv on Mon, 16 Apr 2007 21:01:47 GMT]]></title><description><![CDATA[<p>Luke-2 schrieb:</p>
<blockquote>
<p>Black Shadow schrieb:</p>
<blockquote>
<p>Luke-2 schrieb:</p>
<blockquote>
<p>Ich weiß immer genau wieviel Bytes kommen werden.</p>
</blockquote>
<p>Ne tust du nicht.</p>
</blockquote>
<p>Erklär warum.</p>
<p>Ich schicke Immer erst 7 Byte für die Länge, danach entsprechend Daten.</p>
<p>PS: Ich würde jetzt so vorgehen: Mit recv die Daten mit der übermittelten Länge laden. Wenn die tatsächlich empfangenen Daten &lt; als die erwartete Länge, entsprechend weiterladen. Das wiederholen bis alle Daten geladen sind. Wär das ok?</p>
</blockquote>
<p>TCP garantiert Dir zwar das deine Bytes in der Reihenfolge ankommen wie du sie abgeschickt hast, aber nicht das es zu jedem write ein korrespondierendes read gibt und umgekehrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267391</guid><dc:creator><![CDATA[&#x2F;.]]></dc:creator><pubDate>Mon, 16 Apr 2007 21:01:47 GMT</pubDate></item></channel></rss>