<?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[Dateien über Winsock versenden]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>weiß jemand wie man Files über Winsock versenden kann??? z.B *.bmp ???</p>
<p>Also ich hab bis jetzt nur die Strings versendet und habe keine Ahnung wie<br />
man binäre Dateien über winsock verschickt.</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/69053/dateien-über-winsock-versenden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 22:04:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/69053.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Mar 2004 23:56:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateien über Winsock versenden on Tue, 23 Mar 2004 23:56:06 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>weiß jemand wie man Files über Winsock versenden kann??? z.B *.bmp ???</p>
<p>Also ich hab bis jetzt nur die Strings versendet und habe keine Ahnung wie<br />
man binäre Dateien über winsock verschickt.</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/487352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487352</guid><dc:creator><![CDATA[winsock]]></dc:creator><pubDate>Tue, 23 Mar 2004 23:56:06 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 00:16:19 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>also wie ich weiss kannst du files auch binaer oeffnen (zb fopen(&quot;datei&quot;,&quot;b&quot;) und dann sollte es einfach sein die datei zu uebertragen. du musst glaub ich aber noch was mit newlein beachten oder so, nur als tip. versuch mal, wuerde mich auch interessieren obs geklappt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/487357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487357</guid><dc:creator><![CDATA[msp]]></dc:creator><pubDate>Wed, 24 Mar 2004 00:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 00:28:24 GMT]]></title><description><![CDATA[<p>msp schrieb:</p>
<blockquote>
<p>hi,</p>
<p>also wie ich weiss kannst du files auch binaer oeffnen (zb fopen(&quot;datei&quot;,&quot;b&quot;) und dann sollte es einfach sein die datei zu uebertragen. du musst glaub ich aber noch was mit newlein beachten oder so, nur als tip. versuch mal, wuerde mich auch interessieren obs geklappt hat.</p>
</blockquote>
<p>Ja das hab ich auch ausprobiert, das klappt aber bei mir nur, wenn Datei nicht größer als Buffer am andere Ende ist, also wenn gleich alles auf einmal in buffer eingelesen und versendet werden kann. bei mir 1024. Klar kann man das ändern aber nicht doch auf 5-10MB. Hier muß ich entweder Buffer dynamisch anlegen, oder Datei in kleine(1024Byte) Stücke zerlegen und blockweise versenden. Mich würde mal die zweite Methode gern interresieren.<br />
Hat vieleicht jemand Ideen oder fertige Codebeispiele dazu ???<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/487360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487360</guid><dc:creator><![CDATA[winsock]]></dc:creator><pubDate>Wed, 24 Mar 2004 00:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 07:03:34 GMT]]></title><description><![CDATA[<p>Du darfst die Buffer nur eben nicht als Strings interpretieren, da er sonst &quot;fälschlicherweise&quot; NUL-Zeichen findet. Ansonsten sollte das doch eigentlich nicht anders sein, als bei Strings. Du musst dir eben einen genügend großen Buffer anlegen, in dem du die Datei aus den einzelnen Paketen wieder zusammen setzt <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/487413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487413</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 24 Mar 2004 07:03:34 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 10:16:28 GMT]]></title><description><![CDATA[<p>Hier <a href="http://www.activevb.de/tipps/vb6tipps/tipp0287.html" rel="nofollow">http://www.activevb.de/tipps/vb6tipps/tipp0287.html</a></p>
<p>befindet sich ein gute Beispiel dazu, aber es ist in VB geschrieben.<br />
Weiss jemand wo so änliches in C/C++, finden kann???</p>
<p>Wie ich Datei blockweise versende ist mir klar, mir ist aber nicht klar wie<br />
ich auf der Zielseite die Daten wieder zusammensetze...</p>
<p>need help.....................</p>
]]></description><link>https://www.c-plusplus.net/forum/post/487522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487522</guid><dc:creator><![CDATA[winsock]]></dc:creator><pubDate>Wed, 24 Mar 2004 10:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 11:01:12 GMT]]></title><description><![CDATA[<p>Hmm...</p>
<p>Mit folgenden Infos solltest Du doch selber weiterkommen, oder?</p>
<p>- Du kennst die Größe der zu versendenden Datei<br />
- send() gibt als Rückgabewert die Anzahl der gesendeten Bytes zurück<br />
- man kann in einer while()-Schleife so lange send aufrufen, bis die Größe der Datei verschickt wurde</p>
<p>Ansonsten könnt ich Dir ein WinSock-Tutorial anbieten: <a href="http://www.c-worker.ch" rel="nofollow">www.c-worker.ch</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/487554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487554</guid><dc:creator><![CDATA[Hepi]]></dc:creator><pubDate>Wed, 24 Mar 2004 11:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 12:50:59 GMT]]></title><description><![CDATA[<p>cool, cool <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="😉"
    /></p>
<p>hmm, also ich hab eine ganze file auch noch nie verschickt..<br />
die datei binär zu öffnen is ja schon mal ganz gut,<br />
und dann ne schliefe bis die größe erreicht ist.<br />
naja beim empfänger würd ich probieren die einzelnen pakete wie bauklötze aufeinander zu stapeln. d.h. ich bekomm meinetwegen ein paket aus 512 bytes.. das nächste paket klatsch ich einfach drauf im buffer usw.<br />
nur.. woher weiss ich was für ne file das überhaupt war ? ich würde dann einfach erstmal den dateinamen als string verschicken, der empänger legt dann so eine datei ersmal an und wenn das senden fertig ist, schreibt der empfänger die bytes in die leere xyz.bmp datei z.b.<br />
vielleicht sollte man noch die größe übermitteln, damit der empfänger mit malloc und realloc die größe des buffers immer anpassen kann...<br />
des wär mein erster versuch <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="😉"
    /><br />
also..<br />
-größe senden<br />
-dateiname senden (lol.exe z.b)<br />
-pakete senden</p>
<p>wie gesagt, hab sowas noch nie gemacht..</p>
<p>mfg<br />
haMMer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/487624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487624</guid><dc:creator><![CDATA[_hammer_]]></dc:creator><pubDate>Wed, 24 Mar 2004 12:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 13:03:24 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Nunja wenn alles nichts hilft (obwohl es definitiv geht. FTP machts ja auch.).<br />
Kannst du aus deiner Binärdatei einfach nen String machen. Stichwort ist da Base64. Damit macht sich das Zerteilen in Stücke auch gut, weil es ein Blockformat ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/487643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487643</guid><dc:creator><![CDATA[prolog]]></dc:creator><pubDate>Wed, 24 Mar 2004 13:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Wed, 24 Mar 2004 13:07:49 GMT]]></title><description><![CDATA[<p>Wenn du die einzelnen Pakete direkt in die Datei schreibst brauchst du eigentlich gar nicht wissen, wie groß sie ist, oder <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/487656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/487656</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 24 Mar 2004 13:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Thu, 25 Mar 2004 11:30:59 GMT]]></title><description><![CDATA[<p>hi</p>
<p>flenders hat ganz recht. ich vermute mal du wills ne datei uebertragen, d.h. kopieren ueber netzwerk. dann lass dir zuerst den namen der datei uebermitteln, oeffne sie binaer zum schreiben und in einer schleife kopierst du dann halt jedes zeichen rein, dann is es egal wie gross die datei ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/488427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/488427</guid><dc:creator><![CDATA[msp]]></dc:creator><pubDate>Thu, 25 Mar 2004 11:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Fri, 26 Mar 2004 17:15:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>also folg. Beispiel funzt bei mir einwandfrei, falls es hier jemanden interesiert...</p>
<p>Sender (sprich: Client) sendet File</p>
<pre><code class="language-cpp">void SendFile()
{ 
 HANDLE hFile;
 char FileName[] = &quot;C:\\test.exe&quot;;
 char *Buff;
 int FileSize      = 0;   bekannt sein 
 DWORD BytesRead   = 0;

 hFile = CreateFile(FileName, GENERIC_READ, NULL, NULL,  OPEN_EXISTING,NULL,NULL);
 FileSize = GetFileSize(hFile, NULL);
 Buff = new char[FileSize];

 ReadFile(hFile,  (void *)Buff, FileSize, &amp;BytesRead, NULL);

 send(sock, Buff, FileSize, 0);  // sending file

 CloseHandle(hFile);
 delete [] Buff;
}
</code></pre>
<p>Empfänger (sprich: Server) empfängt File</p>
<pre><code class="language-cpp">void ReciveFile()
{
 HANDLE hFile;
 char FileName[] = &quot;C:\\NEW_FILE.exe&quot;;&quot;;// Muß vor dem Aufr. CreateFile() bekannt sein

 char *Buff;
 DWORD BytesWritten    = 0;
 int FileSize          = 0;// &lt;&lt;&lt; Dateigröße muß vor dem Aufruf WriteFile 

 recv(sock, Buff, FileSize, 0);

 hFile = CreateFile(FileName, GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, NULL, NULL);
 WriteFile(hFile, (void *)Buff, FileSize, &amp;BytesWritten, NULL);

 CloseHandle(hFile);
 delete [] Buff;
}
</code></pre>
<p>Also wie gesagt dieses Beispiel funzt bei mir nur, weil ich von Anfang an weiss, wie groß der Datei ist, und wie er heisst. Am sonsten sollte man<br />
wirklich erst die Name und FileSize an der Server senden, damit der Server weiss<br />
was für ein File mit CreateFile()zu erstellen ist, und wieviele Bytes mit WriteFile() rein geschrieben werden soll.<br />
Also bevor man die Funktionen einsetzten kann, muß man sie so ändern, dass der Server erst alle nötige Inf. bekommt ( Name+Size).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/489151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/489151</guid><dc:creator><![CDATA[winsock]]></dc:creator><pubDate>Fri, 26 Mar 2004 17:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Fri, 26 Mar 2004 17:16:42 GMT]]></title><description><![CDATA[<p>Du kannst die Datei doch auch block-weise einlesen, dann brauchst du eigentlich nicht vorher zu wissen, wie groß sie ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/489613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/489613</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Fri, 26 Mar 2004 17:16:42 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Fri, 26 Mar 2004 17:36:22 GMT]]></title><description><![CDATA[<p>Zumal ich bezweifle, das Du so eine Datei auf einen Schlag übers Internet verschickt bekommst...</p>
<p>Du wirst bei größeren Dateien auf schrittweises Versenden umstellen <strong>müssen</strong>!</p>
<p>Und warum für's Datei versenden 2 Funktionen schreiben, dann kannste die kleinen auch schrittweise verschicken... so wärste immer auf der sicheren Seite...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/489628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/489628</guid><dc:creator><![CDATA[Hepi]]></dc:creator><pubDate>Fri, 26 Mar 2004 17:36:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Fri, 26 Mar 2004 22:12:25 GMT]]></title><description><![CDATA[<p>Hepi schrieb:</p>
<blockquote>
<p>Zumal ich bezweifle, das Du so eine Datei auf einen Schlag übers Internet verschickt bekommst...</p>
<p>Du wirst bei größeren Dateien auf schrittweises Versenden umstellen <strong>müssen</strong>!</p>
<p>Und warum für's Datei versenden 2 Funktionen schreiben, dann kannste die kleinen auch schrittweise verschicken... so wärste immer auf der sicheren Seite...</p>
</blockquote>
<p>Da hast du Recht, es ist kein gute Methode um große Dateien zu versenden.<br />
Da sollte man lieber doch Datei in Stücke zu teilen, um ihn dann blockweise zu schicken. Dann geht es wie bei allen FileSharing Programmen, und zwar so lange nicht alle Teile da sind bleibt der Datei in Temp-Ordner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Da sich aber paar Leuten auch um Mögligkeit Dateien über Winsock zu versenden<br />
interesierten, hab ich den Code gepostet <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="😉"
    /></p>
<p>Ob es optimal oder gut ist ist in Moment nicht wichtig <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="😉"
    /><br />
Es funktioniert einfach, basta <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/489746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/489746</guid><dc:creator><![CDATA[winsock]]></dc:creator><pubDate>Fri, 26 Mar 2004 22:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien über Winsock versenden on Sun, 28 Mar 2004 16:23:53 GMT]]></title><description><![CDATA[<p>Du brauchst auf jeden Fall ein Protokoll (FTP ist auch ein Protokoll!). Der Empfänger sollte ja wissen, was für eine Datei ankommt und wie groß die ist, damit er weiß, wann die Übertragung beendet ist. Meines Wissens hat die Größe deiner eigenen Puffer nichts mit den systeminternen Puffern zu tun, über die letztlich das Senden und Empfangen erfolgt, so daß du über das Zusammenbasteln der einzelnen Datenblöcke auf Empfangsseite nicht umhinkommst.</p>
<p>Rob'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/490553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/490553</guid><dc:creator><![CDATA[Rob&#x27;]]></dc:creator><pubDate>Sun, 28 Mar 2004 16:23:53 GMT</pubDate></item></channel></rss>