<?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[Kleines Problem beim Versenden von Datei über Sockets]]></title><description><![CDATA[<p>Hallo,</p>
<p>das hier bis jetzt mein erster Beitrag, weil ich es bisher geschafft habe im Forum eine Lösung auf eine Probleme zu finden. Aber diesmal weiß ich auch nicht weiter:</p>
<p>Ich versende über ein Socket eine Datei ( z.b. ein Bild oder eine mp3-datei).<br />
Auf der anderen Seite kommt auf den Byte genau so viel an, wie viel ich verschickt habe( die gesamte Datei). Dennoch lässt sich das .jpg-Bild nicht öffnen, wahrscheinlich ist ein Fehler bei den letzten bytes.<br />
Die Lieder sind zu öffnen, aber die zusätzlichen Informationen ( Interpret usw. ) werden nicht mehr angezeigt.</p>
<p>Daher meine Frage, kann es sein, dass man beim Schreiben in eine Datei zum Schluss noch was anhängen muss?</p>
<p>Ich versende Buffer mit der Größe 1024, zum Schluss wird der verbleibene Rest in einem angepassten Buffer versendet, auf der anderen Seite wird natürlich dementsprechend empfangen.</p>
<p>Ich hoffe, ihr habt eine Idee, was zu tun ist.</p>
<p>M.f.g Sir.Wyver</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186921/kleines-problem-beim-versenden-von-datei-über-sockets</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 15:06:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186921.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Jul 2007 16:03:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 16:03:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>das hier bis jetzt mein erster Beitrag, weil ich es bisher geschafft habe im Forum eine Lösung auf eine Probleme zu finden. Aber diesmal weiß ich auch nicht weiter:</p>
<p>Ich versende über ein Socket eine Datei ( z.b. ein Bild oder eine mp3-datei).<br />
Auf der anderen Seite kommt auf den Byte genau so viel an, wie viel ich verschickt habe( die gesamte Datei). Dennoch lässt sich das .jpg-Bild nicht öffnen, wahrscheinlich ist ein Fehler bei den letzten bytes.<br />
Die Lieder sind zu öffnen, aber die zusätzlichen Informationen ( Interpret usw. ) werden nicht mehr angezeigt.</p>
<p>Daher meine Frage, kann es sein, dass man beim Schreiben in eine Datei zum Schluss noch was anhängen muss?</p>
<p>Ich versende Buffer mit der Größe 1024, zum Schluss wird der verbleibene Rest in einem angepassten Buffer versendet, auf der anderen Seite wird natürlich dementsprechend empfangen.</p>
<p>Ich hoffe, ihr habt eine Idee, was zu tun ist.</p>
<p>M.f.g Sir.Wyver</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324791</guid><dc:creator><![CDATA[SirWyver]]></dc:creator><pubDate>Fri, 13 Jul 2007 16:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 17:18:23 GMT]]></title><description><![CDATA[<p>Hm, merkwürdig, müsste eigentlich gehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenn du dann die Original-Datei hast und die gesendete, unterscheiden die sich in der Größe? Oder guck dir einfach mal beide im Hex-Editor an (oder im MSVC++, Datei binär öffnen). Wahrscheinlich brauchste dir da nur Anfang und Ende angucken...<br />
Wenn bei der MP3-Datei der Interpret usw fehlt, müsste das ein Fehler am Anfang sein, dort stehen normalerweise die ID3-Tags. Viel Glück bei der Suche <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/1324844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324844</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 13 Jul 2007 17:18:23 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 17:28:27 GMT]]></title><description><![CDATA[<p>zeig quellcode</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324848</guid><dc:creator><![CDATA[!]]></dc:creator><pubDate>Fri, 13 Jul 2007 17:28:27 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 17:38:55 GMT]]></title><description><![CDATA[<p>Hi, auch daran gedacht, die ankommenden Daten zu Null-Terminieren.</p>
<pre><code class="language-cpp">s=recv(socket,buffer,1024,0);
buffer[s] = 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1324852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324852</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 Jul 2007 17:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 17:57:52 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Hi, auch daran gedacht, die ankommenden Daten zu Null-Terminieren.</p>
<pre><code class="language-cpp">s=recv(socket,buffer,1024,0);
buffer[s] = 0;
</code></pre>
</blockquote>
<p>Weißt du eigentlich, wieviele Null-Bytes du in einer Mp3-Datei findest?...</p>
<p>Edit: Wieso ist das Senden von Binär-Daten eigentlich so unpopulär? Gibt doch so viel mehr als nur Texte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324862</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 13 Jul 2007 17:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 18:32:22 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Weißt du eigentlich, wieviele Null-Bytes du in einer Mp3-Datei findest?...</p>
</blockquote>
<p>Was hat das mit meinem Code zu tun ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324877</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 13 Jul 2007 18:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 18:41:09 GMT]]></title><description><![CDATA[<p>Ok, erstmal vielen Dank für diese schnelle Beantwortung.<br />
Ich hab die beiden Datein im Hex-Editor verglichen und siehe da, am Anfang ist ein Fehler (nur Nullen). Das hilft mir schonmal ziemlich weiter, weil ich den Fehler immer am Ende vermutet hatte.<br />
Ich halt euch auf dem laufenden, wenn ich den (wahrscheinlich kleinen) Fehler gefunden habe.<br />
PS: Muss ich wirklich die Datei null-terminieren, denn die MP3-Datein gehen ja auch ohne?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1324890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1324890</guid><dc:creator><![CDATA[SirWyver]]></dc:creator><pubDate>Fri, 13 Jul 2007 18:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Fri, 13 Jul 2007 22:17:11 GMT]]></title><description><![CDATA[<p>SirWyver schrieb:</p>
<blockquote>
<p>Muss ich wirklich die Datei null-terminieren, denn die MP3-Datein gehen ja auch ohne?</p>
</blockquote>
<p>Nein, musst du nicht... Die gesendete Datei soll ja identisch sein, dazu gehört auch die Größen-Gleichheit <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>
<p>KasF schrieb:</p>
<blockquote>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Weißt du eigentlich, wieviele Null-Bytes du in einer Mp3-Datei findest?...</p>
</blockquote>
<p>Was hat das mit meinem Code zu tun ???</p>
</blockquote>
<p>Tschuldigung, ich wollte dir nix vorwerfen! Aber das Null-terminieren in deinem Code hat nur Sinn, wenn du Texte verschickst, nicht bei Binärdaten. Oder ich irre mich, dann musst du mich belehren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325031</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 13 Jul 2007 22:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sat, 14 Jul 2007 00:26:38 GMT]]></title><description><![CDATA[<p>*Schnaarch* <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 />
Hmm, ich denke mal das macht doch keinen Unterschied. Wenn er recv sagt dass er 1024 Daten lesen soll, dann kann es sein das mal beim lesen nur 500 gelesen werden und dann die restlichen 624 Bytes meines Array mit irgendwelchen Daten gefüllt sind. Deswegen muss geschaut werden wieviel mit recv gelesen wurde und da entsprechend Null terminieren.</p>
<p>Es sei denn er passt darauf auf, wenn er in seine Datei schreibt.</p>
<pre><code class="language-cpp">file.write(buffer,s); // s Zeichen schreiben, s returnwert von recv
</code></pre>
<p>Ansonsten würde er ja wahrscheinlich ältere/ungültige Bytes reinschreiben.</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>KasF schrieb:</p>
<blockquote>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Weißt du eigentlich, wieviele Null-Bytes du in einer Mp3-Datei findest?...</p>
</blockquote>
<p>Was hat das mit meinem Code zu tun ???</p>
</blockquote>
<p>Tschuldigung, ich wollte dir nix vorwerfen!</p>
</blockquote>
<p>Auch sorry <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Dein Satz kam mir so provokant und angreifend vor, da musste ich genauso blöd zurück antworten.</p>
<p>Aber kann sein das du auch Recht hast, denn am Ende werden die Dateien ehe über write geschrieben und für den gibts keine Null-Terminierung. Insofern sollte man als zweites Argument bei write den Return-Wert von recv angeben.</p>
<p>Edit: Hast wahrscheinlich Recht, wenn er die Datei binär behandelt ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325070</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 14 Jul 2007 00:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sat, 14 Jul 2007 10:42:30 GMT]]></title><description><![CDATA[<p>Also, ich hab erstmal getestet, ob auch alles eingelesen wird, indem der Client aus den Daten, die er verschickt, selbst nochmal eine Datei erstellt. Diese funktioniert auch einwandfrei, daher muss wohl der fehler beim versenden liegen. Hierzu ein paar Quellcodeschnipsel:<br />
Der Client, der sendet:</p>
<pre><code class="language-cpp">char buffer[10000];
  unsigned long int FileSize;
  int Status=0;
 FILE *datei;
datei=fopen(&quot;C:\\kal.JPG&quot;,&quot;r+b&quot;);
fseek(datei, 0, SEEK_END);
FileSize = ftell(datei);
fseek(datei, 0, SEEK_SET);
string laenge;
ostringstream outStream;
outStream &lt;&lt; FileSize;
laenge = outStream.str();
send(sock,laenge.c_str(),strlen(laenge.c_str()),NULL);

 if(datei)
    {
      while(!feof(datei)&amp;&amp;(Status&lt;FileSize)&amp;&amp;(FileSize-Status&gt;=1024))
      {
       fread(buffer,1024,1,datei);
       fwrite(buffer,1024,1,datei2);
       send(sock,buffer,1024,0);
       Status=Status+1024;
       cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot;Bytes uebertragen&quot;&lt;&lt;endl;
      }

  int klein=FileSize-Status;
  ostringstream outSe;
  outSe &lt;&lt; klein;
  laenge = outSe.str();
  cout&lt;&lt;&quot;Noch zu senden: &quot;&lt;&lt;laenge;

  fread(buffer,klein,1,datei);
  send(sock,buffer,klein,0);
  Status=Status+klein;
  cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot;Bytes uebertragen&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;Transfer beendet!&quot;&lt;&lt;endl;

  fclose(datei);
}
</code></pre>
<p>Der Server, der empfängt:</p>
<pre><code class="language-cpp">char buffer[1026];
      char laenge[1000];
      unsigned long int Status=0;
      cout&lt;&lt;&quot;Datei senden&quot;&lt;&lt;endl&lt;&lt;endl;
      recv(sockConnected,laenge,1001,NULL);
      unsigned long int FileSize;
      FileSize=atoi(laenge);
      cout&lt;&lt;endl&lt;&lt;&quot;Größe: &quot;&lt;&lt;FileSize;
      FILE *datei;
     datei=fopen(&quot;C:\\alfa.JPG&quot;,&quot;w+b&quot;);
     if(datei)
   {
      while(!feof(datei)&amp;&amp;(Status&lt;FileSize)&amp;&amp;(FileSize-Status&gt;=1024))
        {
          recv(sockConnected,buffer,1024,0);
          fwrite(buffer,1024,1,datei);
          Status=Status+1024;
          cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot;Bytes uebertragen&quot;&lt;&lt;endl;
        }

    int klein=FileSize-Status;

    recv(sockConnected,buffer,klein,0);
    fwrite(buffer,klein,1,datei);
    Status=Status+klein;
    cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot;Bytes uebertragen&quot;&lt;&lt;endl;
    cout&lt;&lt;&quot;Transfer beendet!&quot;&lt;&lt;endl;
    fclose(datei);
   }
[cpp]  char buffer[10000];
  unsigned long int FileSize;
  int Status=0;
 FILE *datei;
datei=fopen(&quot;C:\\kal.JPG&quot;,&quot;r+b&quot;);
fseek(datei, 0, SEEK_END);
FileSize = ftell(datei);
fseek(datei, 0, SEEK_SET);
string laenge;
ostringstream outStream;
outStream &lt;&lt; FileSize;
laenge = outStream.str();
send(sock,laenge.c_str(),strlen(laenge.c_str()),NULL);

 if(datei)
    {
      while(!feof(datei)&amp;&amp;(Status&lt;FileSize)&amp;&amp;(FileSize-Status&gt;=1024))
      {
       fread(buffer,1024,1,datei);
       fwrite(buffer,1024,1,datei2);
       send(sock,buffer,1024,0);
       Status=Status+1024;
       cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot;Bytes uebertragen&quot;&lt;&lt;endl;
      }

  int klein=FileSize-Status;
  ostringstream outSe;
  outSe &lt;&lt; klein;
  laenge = outSe.str();
  cout&lt;&lt;&quot;Noch zu senden: &quot;&lt;&lt;laenge;

  fread(buffer,klein,1,datei);
  send(sock,buffer,klein,0);
  Status=Status+klein;
  cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot;Bytes uebertragen&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;Transfer beendet!&quot;&lt;&lt;endl;

  fclose(datei);
}
</code></pre>
<p>M.f.G SirWyver</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325218</guid><dc:creator><![CDATA[SirWyver]]></dc:creator><pubDate>Sat, 14 Jul 2007 10:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sat, 14 Jul 2007 14:43:18 GMT]]></title><description><![CDATA[<p>code mal deine schleife so das du keine sonderbehandlung für das letzte stück brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325356</guid><dc:creator><![CDATA[-----]]></dc:creator><pubDate>Sat, 14 Jul 2007 14:43:18 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sun, 15 Jul 2007 10:16:04 GMT]]></title><description><![CDATA[<p>Das ist ziemlicher Müll den du da machst.<br />
Ließ dir das hier durch: <a href="http://www.cpp-tutor.de/cpp/le04/le04_03.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/le04/le04_03.htm</a> und benutze einheitlich C++ Streams.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325716</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 15 Jul 2007 10:16:04 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sun, 15 Jul 2007 10:23:14 GMT]]></title><description><![CDATA[<p>Ey du überprüfst ja gar nicht den Rückgabewert von recv!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325720</guid><dc:creator><![CDATA[märker]]></dc:creator><pubDate>Sun, 15 Jul 2007 10:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sun, 15 Jul 2007 12:22:31 GMT]]></title><description><![CDATA[<p>Hi,<br />
ja ich weiß, ich bin noch ein ziemlicher Anfänger (halbes Jahr c++),<br />
Ich hab jetzt nochmal den Receive-rückgabewerte überprüft und es hat sich herausgestellt, dass er am Anfang oder am Ende (wenn er schon aus der Schleife raus ist) mal zu viel, mal zu wenig schickt. Wie kann ich das denn lösen, dass nicht mehrfach die gleichen Bytes geschickt werden oder dass er was weglässt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325799</guid><dc:creator><![CDATA[Sir.Wyver]]></dc:creator><pubDate>Sun, 15 Jul 2007 12:22:31 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Sun, 15 Jul 2007 17:18:12 GMT]]></title><description><![CDATA[<p>Ich glaube der Rückgabewert von <em>send</em> gibt an, wieviele Bytes versendet wurden; können eben auch weniger sein als du wolltest - dann musst du den Rest halt noch mal schicken <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/1326010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326010</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 15 Jul 2007 17:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to Kleines Problem beim Versenden von Datei über Sockets on Mon, 16 Jul 2007 19:52:47 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bräuchte nochmal Eure Hilfe. Ich hab jetzt die Schleife verbessert und beim ersten Senden macht er alles noch richtig, aber wenn man noch etwas versenden will, dann kommt eigentlich nur noch Mist heraus. Ich vermute, es hängt mit den Arrays zusammen, die ich verwende, dann die schon zum Teil gefüllt sind und dadurch was falsches verschickt wird.</p>
<p>Hier nochmal mein Sender:</p>
<pre><code>void SendClient(SOCKET sock)
{
  string Pfad;
  string Name;
  string tosend;
  FILE *datei;
  string laenge=&quot;0&quot;;
  unsigned long int FileSize;
  int gesendet;
while(1)
{
  cout&lt;&lt;&quot;Welche Datei möchest Du verschicken?&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;Pfad: &quot;;
  getline(cin,Pfad);
  cout&lt;&lt;&quot;Name: &quot;;
  getline(cin,Name);
  unsigned long int Status=0;
  tosend=Pfad+Name;
  send(sock,Name.c_str(),strlen(Name.c_str()),NULL);
  char buffer[10000];
  datei=fopen(tosend.c_str(),&quot;r+b&quot;);
  if(!datei)
  {send(sock,laenge.c_str(),3,NULL);}
  else
  {
    fseek(datei, 0, SEEK_END);
    FileSize = ftell(datei);
    fseek(datei, 0, SEEK_SET);
    ostringstream outStream;
    outStream &lt;&lt; FileSize;
    laenge = outStream.str();
    send(sock,laenge.c_str(),strlen(laenge.c_str()),NULL);

    while(!feof(datei)&amp;&amp;(FileSize&gt;Status))
      {
       fread(buffer,1024,1,datei);
       gesendet=send(sock,buffer,1024,0);
       Status=Status+gesendet;
       }
    cout&lt;&lt;endl&lt;&lt;&quot;Transfer beendet!&quot;&lt;&lt;endl;
    fclose(datei);
  }
}
}
</code></pre>
<p>Der Empfänger:</p>
<pre><code>void Receive(SOCKET sock)
{
  string name=&quot;&quot;;
  char name1[1000];
  char laenge[1002];
  recv(sock,name1,1026,NULL);
  name=name1;
  cout&lt;&lt;&quot;Name der Datei: &quot;&lt;&lt;name&lt;&lt;endl;
  recv(sock,laenge,1001,NULL);
  cout&lt;&lt;&quot;Groeße der Datei: &quot;&lt;&lt;laenge&lt;&lt;endl;
  name=&quot;C:\\Downloads\\&quot;+name;
  unsigned long int FileSize;
  unsigned long int Status=0;
  FileSize=atoi(laenge);
  if(FileSize!=0)
  {
     FILE *datei;
     datei=fopen(name.c_str(),&quot;w+b&quot;);
     int empfangen;
     char buffer[10000];
     if(datei)
   {
      while(!feof(datei)&amp;&amp;(FileSize&gt;Status))
        {
          empfangen=recv(sock,buffer,1024,0);
          fwrite(buffer,empfangen,1,datei);
          Status=Status+empfangen;
        }
    cout&lt;&lt;endl&lt;&lt;Status&lt;&lt;&quot; Bytes uebertragen&quot;&lt;&lt;endl;
    cout&lt;&lt;&quot;Transfer beendet!&quot;&lt;&lt;endl;
    fclose(datei);
   }
  }
}
</code></pre>
<p>Wäre echt nett, wenn Ihr mir helfen könntet <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 />
Dann vielen Dank im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326810</guid><dc:creator><![CDATA[Sir.Wyver]]></dc:creator><pubDate>Mon, 16 Jul 2007 19:52:47 GMT</pubDate></item></channel></rss>