<?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 per TCP versenden]]></title><description><![CDATA[<p>Guten Morgen,<br />
Ich habe mich jetzt ne Stunde lang mit der Forensuche beschäftigt und teilweiße guten Informationen gefunden aber bekomme es einfach nicht hin das die Daten übertragen werden. Der Empfänger legt zwar die Datei an aber die größe der Datei bleibt 0 Byte <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>
<p><strong>Senden</strong></p>
<pre><code class="language-cpp">void SendFile(String ip)
{
     if (Form1-&gt;ClientSocket1-&gt;Active)
     Form1-&gt;ClientSocket1-&gt;Active = false;

     Form1-&gt;ClientSocket1-&gt;Address = ip;
     Form1-&gt;ClientSocket1-&gt;Open();

     if(Form1-&gt;ClientSocket1-&gt;Socket-&gt;Connected)
     {
     TFileStream *out = new TFileStream(Form1-&gt;OpenDialog1-&gt;FileName, fmOpenRead);

  out-&gt;Seek(0,soFromBeginning);
     char buf[1024];
     int c,b;

     do
     {
        Form3-&gt;Label4-&gt;Caption = &quot;Uploading...&quot;;

        b = out-&gt;Read(buf,sizeof(buf));
        c = Form1-&gt;ClientSocket1-&gt;Socket-&gt;SendBuf(buf,b);

        while(c == -1)
        {
        c = Form1-&gt;ClientSocket1-&gt;Socket-&gt;SendBuf(buf,b);
        }

    }
     while(b == sizeof(buf));
     delete out;
  }
}
</code></pre>
<p><strong>Empfangen</strong></p>
<pre><code class="language-cpp">void __fastcall TForm1::ServerSocket1ClientWrite(TObject *Sender,
      TCustomWinSocket *Socket)
{
TFileStream *in = new TFileStream(Form2-&gt;Label1-&gt;Caption + &quot;\\&quot; + filelist-&gt;Values[Socket-&gt;RemoteAddress], fmCreate);

   int bytesReceived(0);
   do
  {
    char buf[1024];
    bytesReceived = Socket-&gt;ReceiveBuf(buf, sizeof(buf));
    in-&gt;Write(buf, bytesReceived);

  }
   while (bytesReceived != -1);
   delete in;
}
</code></pre>
<p>Darf ich überhaupt in einem Socket Event mit einer while Schleife arbeiten ?<br />
Ist die Socket Komponente die richtige ?</p>
<p>Ich hoffe ihr könnt mir nen Tip geben was schief läuft <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>
<p>David</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/103954/dateien-per-tcp-versenden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 16:53:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/103954.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Mar 2005 05:47:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateien per TCP versenden on Tue, 15 Mar 2005 16:59:26 GMT]]></title><description><![CDATA[<p>Guten Morgen,<br />
Ich habe mich jetzt ne Stunde lang mit der Forensuche beschäftigt und teilweiße guten Informationen gefunden aber bekomme es einfach nicht hin das die Daten übertragen werden. Der Empfänger legt zwar die Datei an aber die größe der Datei bleibt 0 Byte <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>
<p><strong>Senden</strong></p>
<pre><code class="language-cpp">void SendFile(String ip)
{
     if (Form1-&gt;ClientSocket1-&gt;Active)
     Form1-&gt;ClientSocket1-&gt;Active = false;

     Form1-&gt;ClientSocket1-&gt;Address = ip;
     Form1-&gt;ClientSocket1-&gt;Open();

     if(Form1-&gt;ClientSocket1-&gt;Socket-&gt;Connected)
     {
     TFileStream *out = new TFileStream(Form1-&gt;OpenDialog1-&gt;FileName, fmOpenRead);

  out-&gt;Seek(0,soFromBeginning);
     char buf[1024];
     int c,b;

     do
     {
        Form3-&gt;Label4-&gt;Caption = &quot;Uploading...&quot;;

        b = out-&gt;Read(buf,sizeof(buf));
        c = Form1-&gt;ClientSocket1-&gt;Socket-&gt;SendBuf(buf,b);

        while(c == -1)
        {
        c = Form1-&gt;ClientSocket1-&gt;Socket-&gt;SendBuf(buf,b);
        }

    }
     while(b == sizeof(buf));
     delete out;
  }
}
</code></pre>
<p><strong>Empfangen</strong></p>
<pre><code class="language-cpp">void __fastcall TForm1::ServerSocket1ClientWrite(TObject *Sender,
      TCustomWinSocket *Socket)
{
TFileStream *in = new TFileStream(Form2-&gt;Label1-&gt;Caption + &quot;\\&quot; + filelist-&gt;Values[Socket-&gt;RemoteAddress], fmCreate);

   int bytesReceived(0);
   do
  {
    char buf[1024];
    bytesReceived = Socket-&gt;ReceiveBuf(buf, sizeof(buf));
    in-&gt;Write(buf, bytesReceived);

  }
   while (bytesReceived != -1);
   delete in;
}
</code></pre>
<p>Darf ich überhaupt in einem Socket Event mit einer while Schleife arbeiten ?<br />
Ist die Socket Komponente die richtige ?</p>
<p>Ich hoffe ihr könnt mir nen Tip geben was schief läuft <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>
<p>David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/744710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/744710</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Tue, 15 Mar 2005 16:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per TCP versenden on Tue, 15 Mar 2005 06:54:13 GMT]]></title><description><![CDATA[<p>Der Gedanke ist schon richtig... Du sollst events nicht mit Schleifen versehen... das geht nicht. Betrachte ein Event als eine Interrupt Service Routine.</p>
<p>Lies vielleicht mal den Beitrag zum Thema Protokollentwicklung durch.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-43712-and-highlight-is-*bild*+*senden*.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-43712-and-highlight-is-*bild*+*senden*.html</a> ist übrigens auch recht spannend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/744738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/744738</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Tue, 15 Mar 2005 06:54:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per TCP versenden on Tue, 15 Mar 2005 19:10:53 GMT]]></title><description><![CDATA[<p>Vielen Dank<br />
In jedem dritten Beitrag wird irgendwo was eingeworfen was besser sein soll als einer der vorherigen Code abschnitte. Das erschlägt mich.<br />
Ich möchte jeden File verschicken können. Soll ich FileStream oder MemoryStream verwenden ?</p>
<p>Mir ist aufgefallen das in meinem oberen Beispiel beim senden niemals in Form3-&gt;Label4 &quot;Uploading&quot; eingetragen wird, mit anderen Worten muss er beim Senden schon früher aussteigen, aber was mache ich dabei nur falsch ?</p>
<p>wenn ich ja wenigstens ne Fehlermeldung bekommen würde, aber es wird alles ohne murren und knurren kompiliert und ausgeführt.</p>
<p>Was könnte das sein ? Die Verbindung steht da ich Socket Errors abfange und bei On Connected/Disconnect mir ebenfalls einen entsprechenden String im Label anzeigen lasse <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/745256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/745256</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Tue, 15 Mar 2005 19:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per TCP versenden on Wed, 16 Mar 2005 06:48:41 GMT]]></title><description><![CDATA[<p>Uploading wird eingetragen, sobald du dem Fenster zeit gibst, seine Nachrichten abzuarbeiten... Hatten wir hier schon öfters</p>
<p>Such mal kurz nach Appliaction::ProcessMessages in diesem Forum um mehr Infos zu erhalten.</p>
<p>Ausserdem versteh ich den Rest nicht... was wird wem wo angeworfen das du nicht vestehst?</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/745611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/745611</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Wed, 16 Mar 2005 06:48:41 GMT</pubDate></item></channel></rss>