<?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[werden netzwerkdaten gepuffert bevor recv ?]]></title><description><![CDATA[<p>Hi Zusammen,</p>
<p>ähm.. ja.. eine kleine Verständnisfrage von mir:</p>
<p>Nehmen wir mal an, ich hätte ein Programm, das die Windows Sockets verwendet... (also mit den altbekannten Funktionen wie recv, send, sendto, listen, etc.)</p>
<p>...dann muss mir doch &quot;Windows&quot; (oder der zugrunde liegende Winsock Service Provider )solange die ankommenden Daten von TCP in einem &quot;internen&quot; Puffer speichern, bis ich sie mir schließlich mit recv() in meinen eigenen Programmbuffer rüberkopiere, oder ?<br />
Was würde angenommen passieren, wenn ich ein Server-Socket erstelle, danach mit einem anderen Programm zu diesem Server hin-connecte und eine Menge Bytes an diesen sende, aber (!) die empfangenen Daten serverseitig nie mit recv() auslese ?</p>
<p>Dann müsste doch logischerweise irgendwann der &quot;interne&quot; Windows-Puffer irgendwann vollgeschrieben sein und keinen Datenempfang mehr zulassen, oder ?<br />
Mir geht's nur grad darum, ob ich Daten verlieren könnte, wenn ich lange Zeit recv() nicht aufrufe, aber dauernd Daten über die Netzwerkleitung reinkommen...<br />
verwirrt mich grad ein bisschen. Hoffe mein Text ist nicht allzu schwer zu parsen im Moment <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="😉"
    /> Vielleicht weiß ja noch jemand, wie groß dieser Puffer ist.</p>
<p>Schöne Grüße,<br />
howsthat</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245074/werden-netzwerkdaten-gepuffert-bevor-recv</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Apr 2026 18:35:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245074.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Jul 2009 15:44:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 15:44:26 GMT]]></title><description><![CDATA[<p>Hi Zusammen,</p>
<p>ähm.. ja.. eine kleine Verständnisfrage von mir:</p>
<p>Nehmen wir mal an, ich hätte ein Programm, das die Windows Sockets verwendet... (also mit den altbekannten Funktionen wie recv, send, sendto, listen, etc.)</p>
<p>...dann muss mir doch &quot;Windows&quot; (oder der zugrunde liegende Winsock Service Provider )solange die ankommenden Daten von TCP in einem &quot;internen&quot; Puffer speichern, bis ich sie mir schließlich mit recv() in meinen eigenen Programmbuffer rüberkopiere, oder ?<br />
Was würde angenommen passieren, wenn ich ein Server-Socket erstelle, danach mit einem anderen Programm zu diesem Server hin-connecte und eine Menge Bytes an diesen sende, aber (!) die empfangenen Daten serverseitig nie mit recv() auslese ?</p>
<p>Dann müsste doch logischerweise irgendwann der &quot;interne&quot; Windows-Puffer irgendwann vollgeschrieben sein und keinen Datenempfang mehr zulassen, oder ?<br />
Mir geht's nur grad darum, ob ich Daten verlieren könnte, wenn ich lange Zeit recv() nicht aufrufe, aber dauernd Daten über die Netzwerkleitung reinkommen...<br />
verwirrt mich grad ein bisschen. Hoffe mein Text ist nicht allzu schwer zu parsen im Moment <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="😉"
    /> Vielleicht weiß ja noch jemand, wie groß dieser Puffer ist.</p>
<p>Schöne Grüße,<br />
howsthat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739856</guid><dc:creator><![CDATA[howsthat]]></dc:creator><pubDate>Thu, 09 Jul 2009 15:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 15:55:43 GMT]]></title><description><![CDATA[<p>ich würde sagen, die daten kommen paketweise an. holste ein paket nicht ab, kommt auch nicht das nächste an, usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1739864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1739864</guid><dc:creator><![CDATA[profezeih0r]]></dc:creator><pubDate>Thu, 09 Jul 2009 15:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 21:06:12 GMT]]></title><description><![CDATA[<p>ähm...nö XD<br />
habs gerade mit einer einfachen Anwendnung ausprobiert.<br />
Die Daten werden irgendwo abgespeichert, auch wenn ich sie nicht per recv() sofort auslese.<br />
soweit ich weiß is tcp ja stream-basiert, d.h. die einzelnen packets werden auf der anderen seite zu einem endlosen fluss (engl. stream) wieder zusammengesetzt.<br />
da dürfte dann auch nix fehlen an packets.<br />
aber die grenzen des puffers würden mich mal interessieren.<br />
ich mein'... ich werd ja wohl nicht komplette 10GB übertragen können ohne die auf der anderen seite jemals mit recv() abgeholt zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740051</guid><dc:creator><![CDATA[howsthat]]></dc:creator><pubDate>Thu, 09 Jul 2009 21:06:12 GMT</pubDate></item><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 21:21:47 GMT]]></title><description><![CDATA[<p>howsthat schrieb:</p>
<blockquote>
<p>ich mein'... ich werd ja wohl nicht komplette 10GB übertragen können ohne die auf der anderen seite jemals mit recv() abgeholt zu haben.</p>
</blockquote>
<p>Stimmt. Google einfach mal nach TCP window size.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740055</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 09 Jul 2009 21:21:47 GMT</pubDate></item><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 21:37:44 GMT]]></title><description><![CDATA[<p>yup, hab's genau 2 minuten nach meinem post auch gefunden <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 />
nennt sich &quot;RWin&quot; unter Wikipedia, die sog. Receive Window Size.</p>
<p>Weiß zufällig einer was passiert, wenn diese Empfangsfenstergröße überschritten wird ? Ich denke, ich werd's mal ausprobieren und versuchen, mehr als die maximalen 16 Kilobyte (unter Windows 2000 und XP) an einen Clientrechner zu senden.<br />
Ich nehme mal an, nach weiteren Versuchen, Daten an den Rechner zu schicken, wird mir send() mit einem Fehlercode abschmieren, aber mal sehen...</p>
<p>Danke jedenfalls, Nanyuki !</p>
<p>MFG,<br />
howsthat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740064</guid><dc:creator><![CDATA[howsthat]]></dc:creator><pubDate>Thu, 09 Jul 2009 21:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 21:45:59 GMT]]></title><description><![CDATA[<p>Du kannst es dir auch einfach machen und mit asynchronen Sockets (=nicht blockierend) arbeiten, dann bekommst du einfach Bescheid wenn du (wieder) senden kannst <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/1740068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740068</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 09 Jul 2009 21:45:59 GMT</pubDate></item><item><title><![CDATA[Reply to werden netzwerkdaten gepuffert bevor recv ? on Thu, 09 Jul 2009 22:59:57 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich denke, ich werd's mal ausprobieren und versuchen, mehr als die maximalen 16 Kilobyte (unter Windows 2000 und XP) an einen Clientrechner zu senden.</p>
</blockquote>
<p>Die maximale Grösse ist AFAIK nicht 16KB, sondern einiges grösser. Aber egal.<br />
Was passiert ist einfach: der empfangende PC verwirft die Daten, und teilt dem Sender mit, dass er nixmehr puffern kann. Der Sender puffert dann auf seiner Seite eine Zeit lang weiter, und wenn auch der &quot;Sende Puffer&quot; voll ist, dann fängt beim Sender an send() zu blockieren. Bzw. im nonblocking Mode liefert send() dann einfach EWOULDBLOCK.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1740102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1740102</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 09 Jul 2009 22:59:57 GMT</pubDate></item></channel></rss>