<?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[Sockets und variable Datenpakete (msg_peek)]]></title><description><![CDATA[<p>eins voraus, ich hab nach meinem thema gesucht es aber irgendwie nicht mehr gefunden, deshalb ein neues thema:</p>
<p>ich hatte ja mal angefangen mit sockets und paketartiger übertragung rumzubasteln.</p>
<p>jetzt iss mir der kragen geplatzt vor lauter umständen und ich habs einfach wieder auf die übermittlung von längeninformation + befehlsnummer + daten reduziert .... in meinem programm verwende ich msg_peek um auf daten zu warten wenn welche für ein komplettes paket fehlen.<br />
meine frage an der stelle nochmal ich verwende winsock2.h für winsock1.1 weis ich das es probleme gibt aber mit winsock2 ?</p>
<p>ich frage hier nach erfahrungswerten, eh ich fehlerhaften code schreibe, im netz hab ich nichts zu derartigen problemen unter version 2 gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194188/sockets-und-variable-datenpakete-msg_peek</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 09:16:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194188.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Oct 2007 07:35:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sockets und variable Datenpakete (msg_peek) on Thu, 04 Oct 2007 07:35:13 GMT]]></title><description><![CDATA[<p>eins voraus, ich hab nach meinem thema gesucht es aber irgendwie nicht mehr gefunden, deshalb ein neues thema:</p>
<p>ich hatte ja mal angefangen mit sockets und paketartiger übertragung rumzubasteln.</p>
<p>jetzt iss mir der kragen geplatzt vor lauter umständen und ich habs einfach wieder auf die übermittlung von längeninformation + befehlsnummer + daten reduziert .... in meinem programm verwende ich msg_peek um auf daten zu warten wenn welche für ein komplettes paket fehlen.<br />
meine frage an der stelle nochmal ich verwende winsock2.h für winsock1.1 weis ich das es probleme gibt aber mit winsock2 ?</p>
<p>ich frage hier nach erfahrungswerten, eh ich fehlerhaften code schreibe, im netz hab ich nichts zu derartigen problemen unter version 2 gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377582</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 04 Oct 2007 07:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets und variable Datenpakete (msg_peek) on Thu, 04 Oct 2007 08:44:25 GMT]]></title><description><![CDATA[<p>Ich hab grad keine Quelle dafür, ich meine aber gehört zu haben, dass man msg_peek nicht (mehr) benutzen soll <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="😉"
    /> Probiers mal mit wiederholtem recv mit der Anzahl an fehlenden Bytes, vielleicht liegts daran.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377621</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 04 Oct 2007 08:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets und variable Datenpakete (msg_peek) on Thu, 04 Oct 2007 08:54:50 GMT]]></title><description><![CDATA[<p>Ceos,</p>
<p>Don't try to teach your protocol to the kernel.<br />
Just try to get as much data from the kernel as quickly as you can, then parse it as the kernel gives it to you.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377639</guid><dc:creator><![CDATA[DS]]></dc:creator><pubDate>Thu, 04 Oct 2007 08:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to Sockets und variable Datenpakete (msg_peek) on Thu, 04 Oct 2007 09:24:01 GMT]]></title><description><![CDATA[<p>ja ich weis ich weis .... ich wollt aber ein unnötiges umkopieren der daten vermeiden :p</p>
<pre><code class="language-cpp">char buff[100];

struct thead {
   char size;
   char ID;
} head;

...
  int tot = 0;
  tot = recv(sock, head, sizeof(head), 0);
  while (tot &lt; sizeof(head)) {
    tot += recv(sock, head+tot, sizeof(head)-tot, 0);
  }
  int len = head.size;
  tot = 0;
  tot = recv(sock, buff, len, 0);
  while (tot &lt; len) {
    tot += recv(sock, buff+tot, len-tot, 0);
  }
...
</code></pre>
<p>EDIT : so hab ichs jetzt gelöst, da brauch cih auch nix umkopieren kein msg_peek und ich hab keinen pufferüberlauf, weil ich das recv immer auf das nurnoch notwendige begrenze <sup>_</sup></p>
<p>last EDIT: einziges Problem das bleibt ist, wenn meine pakete korrupiert werden (oder ein fehler bei der berechnung der länge auftrit) gehts natürlich wieder nicht, aber das iss ne andere geschichte :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377654</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Thu, 04 Oct 2007 09:24:01 GMT</pubDate></item></channel></rss>