<?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[Daten komprimieren und versenden]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe mir eine kleine Client-Server Anwendung geschrieben.</p>
<p>Reinen Text kann ich ohne Probleme hin- und hersenden.</p>
<p>Jetzt will ich das ganze aber mit der bzlib komprimieren und dann versenden.</p>
<p>Das komprimieren funktioniert auch perfekt, nur wenn ich die Daten versende kommen sie korrupt an und lassen sich nicht mehr entpacken (CRC-Fehler).</p>
<p>Ich mach das ganze in C++ mit VS 2010 unter Win7, aber es sollte danach auch auf WinXP laufen.</p>
<p>Denkanstöße oder Codeschnipsel wären sehr hilfreich.</p>
<p>Blackwolf</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281744/daten-komprimieren-und-versenden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 12:19:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281744.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Feb 2011 07:31:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 07:31:31 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe mir eine kleine Client-Server Anwendung geschrieben.</p>
<p>Reinen Text kann ich ohne Probleme hin- und hersenden.</p>
<p>Jetzt will ich das ganze aber mit der bzlib komprimieren und dann versenden.</p>
<p>Das komprimieren funktioniert auch perfekt, nur wenn ich die Daten versende kommen sie korrupt an und lassen sich nicht mehr entpacken (CRC-Fehler).</p>
<p>Ich mach das ganze in C++ mit VS 2010 unter Win7, aber es sollte danach auch auf WinXP laufen.</p>
<p>Denkanstöße oder Codeschnipsel wären sehr hilfreich.</p>
<p>Blackwolf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017650</guid><dc:creator><![CDATA[BlackWolf]]></dc:creator><pubDate>Mon, 07 Feb 2011 07:31:31 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 07:32:26 GMT]]></title><description><![CDATA[<p>BlackWolf schrieb:</p>
<blockquote>
<p>Codeschnipsel wären sehr hilfreich.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2017651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017651</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 07 Feb 2011 07:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 07:44:23 GMT]]></title><description><![CDATA[<p>Senden:</p>
<pre><code class="language-cpp">char *sbuffer_in;
sbuffer_in = new char[10000];
strcpy(sbuffer_in,&quot;blabla&quot;);
int ret_send = send(cclient[s].socket,sbuffer_in, 10000, 0);
</code></pre>
<p>Empfangen:</p>
<pre><code class="language-cpp">char *c_buffer;
c_buffer = new char[10000];
ret = recv(s,c_buffer,10000,0);
</code></pre>
<p>Das ganze geht TCP/IP Sockets.</p>
<p>Reiner Text funktioniert auch ohne Probleme, nur eben die komprimierten Daten machen Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017653</guid><dc:creator><![CDATA[BlackWolf]]></dc:creator><pubDate>Mon, 07 Feb 2011 07:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 07:46:57 GMT]]></title><description><![CDATA[<p>BlackWolf schrieb:</p>
<blockquote>
<p>Reiner Text funktioniert auch ohne Probleme, nur eben die komprimierten Daten machen Probleme.</p>
</blockquote>
<p>Warum zeigst du dann den Code fürs Versenden von Text?</p>
<p>Welchen Wert bekommst du bei recv zurück?<br />
Was machst du nach recv mit den Daten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017655</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 07 Feb 2011 07:46:57 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 08:03:31 GMT]]></title><description><![CDATA[<p>Ok, sorry mein Denkfehler.</p>
<p>Senden:</p>
<pre><code class="language-cpp">unsigned int dest_buff_size = 10000;
unsigned int dest_buff_size2 = 10000;

char *sbuffer_in;
sbuffer_in = new char[dest_buff_size2];
strcpy(sbuffer_in,&quot;blabla&quot;);

char *dest_buff;
dest_buff = new char[dest_buff_size];

int bz2Status = Zlib_compress(dest_buff, &amp;dest_buff_size, sbuffer_in, dest_buff_size2, 9, 0, 30);
//bz2Status ist hier 0, also alles ok

int ret_send = send(cclient[s].socket,dest_buff, 10000, 0);
</code></pre>
<p>Empfangen:</p>
<pre><code class="language-cpp">char *c_buffer_tmp;
dest_buff = new char[10000];

ret = recv(s,c_buffer_tmp,10000,0);
if (ret == -1)
break;
//ret hat immer 10000

unsigned int dest_buff_size = 10000;
unsigned int dest_buff_size2 = 10000;

char *dest_buff;
dest_buff = new char[dest_buff_size];

int bz2Status = Zlib_uncompress(dest_buff, &amp;dest_buff_size, c_buffer_tmp, dest_buff_size2, 0, 0);
//Hier bekomme ich bei bz2Status immer -4 BZ_DATA_ERROR herraus
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2017660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017660</guid><dc:creator><![CDATA[BlackWolf]]></dc:creator><pubDate>Mon, 07 Feb 2011 08:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 08:28:05 GMT]]></title><description><![CDATA[<p>Es ist vermutlich keine gute Idee, immer 10000 Bytes zu schicken. Die uncompress-Funktion mag wahrscheinlich die hinten dran hängenden zusätzlichen Daten nicht. Bandbreitenverschwendung ist es obendrein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017664</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 07 Feb 2011 08:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 08:51:02 GMT]]></title><description><![CDATA[<p>Hast du schonmal versucht den Puffer ohne zu versenden wieder zu extrahieren? Die reinen Daten verhalten sich nämlich immer zu hundert Prozent gleich in den Socket-Funktionen. Egal ob sie im ASCII-Bereich oder außerhalb liegen. Und wie MFK schon sagte, nicht mehr Daten in die Dekompression stopfen, als du in die Kompression rein gesteckt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017673</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 07 Feb 2011 08:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 11:11:06 GMT]]></title><description><![CDATA[<p>Vielen Dank euch 2, das mit den zusätzlichen Daten am Ende war der Fehler, wenn ich den Returnwert von recv nehme funktioniert alles.</p>
<p>Gruß Blackwolf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2017738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2017738</guid><dc:creator><![CDATA[BlackWolf]]></dc:creator><pubDate>Mon, 07 Feb 2011 11:11:06 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Mon, 07 Feb 2011 21:45:55 GMT]]></title><description><![CDATA[<p>Du kannst den Returnwert von recv so nicht verwenden.<br />
TCP/IP kennt keine Message-Grenzen, d.h. du musst selbst die Grösse des komprimierten Datenblocks mitschicken.<br />
Und du musst recv() in einer Schleife so oft aufrufen, bis du alle Daten empfangen hast, die du brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018014</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 07 Feb 2011 21:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to Daten komprimieren und versenden on Tue, 08 Feb 2011 06:35:35 GMT]]></title><description><![CDATA[<p>Ich habe es jetzt so gemacht, das ich als erstes die größe der Daten sende und als 2tes dann die Daten, so habe ich auch noch eine kleine Kontrolle ob wirklich alles gesendet wurde.</p>
<p>Das mit der Schleife mache ich sowiso, in dem Code wo ich gepostet habe habe ich es nur weggelassen zwecks der Übersicht.</p>
<p>Nochmals Danke</p>
<p>Gruß Blackwolf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2018065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2018065</guid><dc:creator><![CDATA[BlackWolf]]></dc:creator><pubDate>Tue, 08 Feb 2011 06:35:35 GMT</pubDate></item></channel></rss>