<?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[Winsock und Streams]]></title><description><![CDATA[<p>Hallo! Ich bin grade an der Winsock Programmierung und will dateien verschicken. Dazu teile ich die Datei bsp Install.log in 16byte teile und schicke diese an den Server, der sie wieder zusammensetzt und in einer Datei speichert..<br />
Das Problem ist: es werden die ersten und die letzten 16 Stellen weggelassen. Kann mir da jemand helfen?[/cpp]</p>
<p>//////////////////////////////Client<br />
FILE *fh_in;<br />
char Chunk[16];<br />
long filesize;<br />
long chunksize = 16;<br />
long bytesread = 0;<br />
int prozent = 0;<br />
int groesse = 0;<br />
int packet = 0;<br />
char buffor;<br />
fh_in = fopen( &quot;E:\\INSTALL.LOG&quot;, &quot;rb&quot; );<br />
fseek( fh_in, 0, SEEK_END );<br />
filesize = ftell(fh_in);<br />
fseek( fh_in, 0, SEEK_SET );</p>
<p>cout &lt;&lt; &quot;Datei Groesse: &quot; &lt;&lt; filesize &lt;&lt; &quot;\n&quot;;<br />
groesse = filesize/chunksize;<br />
cout &lt;&lt; &quot;Packete zu senden: \n&quot; &lt;&lt; groesse &lt;&lt; &quot;\n&quot;;<br />
cout &lt;&lt; &quot;\nFortschtritt:\n&quot;;</p>
<p>while( fread( Chunk, chunksize, 1, fh_in ))<br />
{<br />
packet++;<br />
prozent = 100 * packet / groesse;<br />
printf(&quot;\b\b\b\b\b\b\b\b\b%d%%&quot;, prozent);<br />
printf(&quot; (%d)&quot;, packet);<br />
bytesread += chunksize;<br />
if( bytesread &gt; filesize - chunksize )<br />
chunksize = filesize - bytesread;<br />
send(sock,Chunk,chunksize,0);<br />
Sleep(100);<br />
}<br />
send(sock,&quot;finished&quot;,strlen(&quot;finished&quot;),0);<br />
printf(&quot;Fertig\n&quot;);<br />
fclose(fh_in);<br />
goto sendlabel;</p>
<p>//////////////////////////////Server<br />
FILE *fh_out;<br />
char Chunk[16];<br />
long filesize;<br />
long chunksize = 16;<br />
long bytesread = 0;<br />
int prozent = 0;<br />
int groesse = 0;<br />
int packet = 0;<br />
fh_out = fopen( &quot;e:\\neu.log&quot;, &quot;wb&quot; );<br />
cout &lt;&lt; &quot;Fange an!&quot;;</p>
<p>while(!( Chunk == &quot;finished&quot; ))<br />
{<br />
cout &lt;&lt; &quot;Mache grad\n&quot;;<br />
recv_size = recv(client_socket, Chunk,chunksize ,0);<br />
Chunk[recv_size]='\0';<br />
if (!strcmp(Chunk, &quot;finished&quot;)){goto uploadlabel;}<br />
fwrite( Chunk, chunksize, 1, fh_out );<br />
}<br />
uploadlabel:<br />
fclose(fh_out);<br />
printf(&quot;Fertig\n&quot;);[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136055/winsock-und-streams</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 09:22:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136055.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Feb 2006 23:46:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Winsock und Streams on Mon, 06 Feb 2006 23:46:16 GMT]]></title><description><![CDATA[<p>Hallo! Ich bin grade an der Winsock Programmierung und will dateien verschicken. Dazu teile ich die Datei bsp Install.log in 16byte teile und schicke diese an den Server, der sie wieder zusammensetzt und in einer Datei speichert..<br />
Das Problem ist: es werden die ersten und die letzten 16 Stellen weggelassen. Kann mir da jemand helfen?[/cpp]</p>
<p>//////////////////////////////Client<br />
FILE *fh_in;<br />
char Chunk[16];<br />
long filesize;<br />
long chunksize = 16;<br />
long bytesread = 0;<br />
int prozent = 0;<br />
int groesse = 0;<br />
int packet = 0;<br />
char buffor;<br />
fh_in = fopen( &quot;E:\\INSTALL.LOG&quot;, &quot;rb&quot; );<br />
fseek( fh_in, 0, SEEK_END );<br />
filesize = ftell(fh_in);<br />
fseek( fh_in, 0, SEEK_SET );</p>
<p>cout &lt;&lt; &quot;Datei Groesse: &quot; &lt;&lt; filesize &lt;&lt; &quot;\n&quot;;<br />
groesse = filesize/chunksize;<br />
cout &lt;&lt; &quot;Packete zu senden: \n&quot; &lt;&lt; groesse &lt;&lt; &quot;\n&quot;;<br />
cout &lt;&lt; &quot;\nFortschtritt:\n&quot;;</p>
<p>while( fread( Chunk, chunksize, 1, fh_in ))<br />
{<br />
packet++;<br />
prozent = 100 * packet / groesse;<br />
printf(&quot;\b\b\b\b\b\b\b\b\b%d%%&quot;, prozent);<br />
printf(&quot; (%d)&quot;, packet);<br />
bytesread += chunksize;<br />
if( bytesread &gt; filesize - chunksize )<br />
chunksize = filesize - bytesread;<br />
send(sock,Chunk,chunksize,0);<br />
Sleep(100);<br />
}<br />
send(sock,&quot;finished&quot;,strlen(&quot;finished&quot;),0);<br />
printf(&quot;Fertig\n&quot;);<br />
fclose(fh_in);<br />
goto sendlabel;</p>
<p>//////////////////////////////Server<br />
FILE *fh_out;<br />
char Chunk[16];<br />
long filesize;<br />
long chunksize = 16;<br />
long bytesread = 0;<br />
int prozent = 0;<br />
int groesse = 0;<br />
int packet = 0;<br />
fh_out = fopen( &quot;e:\\neu.log&quot;, &quot;wb&quot; );<br />
cout &lt;&lt; &quot;Fange an!&quot;;</p>
<p>while(!( Chunk == &quot;finished&quot; ))<br />
{<br />
cout &lt;&lt; &quot;Mache grad\n&quot;;<br />
recv_size = recv(client_socket, Chunk,chunksize ,0);<br />
Chunk[recv_size]='\0';<br />
if (!strcmp(Chunk, &quot;finished&quot;)){goto uploadlabel;}<br />
fwrite( Chunk, chunksize, 1, fh_out );<br />
}<br />
uploadlabel:<br />
fclose(fh_out);<br />
printf(&quot;Fertig\n&quot;);[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988146</guid><dc:creator><![CDATA[Sourcer0r]]></dc:creator><pubDate>Mon, 06 Feb 2006 23:46:16 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock und Streams on Tue, 07 Feb 2006 19:14:53 GMT]]></title><description><![CDATA[<p>ein bisschen schwer zu lesen benutzt ma bitte die code tags das nächste mal richtig.</p>
<p>ich würde dir empfehlen(wenns nur auf windows laufen soll) TransferFile() (heissts glaub ich) zu verwenden das ist extrem viel schneller</p>
<p>und bitte bitte bitte lass die verdammten gotos weg und mit der chunksize machs doch so:</p>
<pre><code class="language-cpp">char Chunk[chunksize];
</code></pre>
<p>dass is ein bisschen dynamischer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/988846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/988846</guid><dc:creator><![CDATA[wsa]]></dc:creator><pubDate>Tue, 07 Feb 2006 19:14:53 GMT</pubDate></item></channel></rss>