<?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[Datei über Netzwerk versenden (Socket)]]></title><description><![CDATA[<p>Hallo Leute,<br />
vorhanden ist eine Socket-Verbindung mittels TClient/ServerSocket. Text versenden wird durch <em>Client-&gt;Socket-&gt;SendText(&quot;Text&quot;)</em> erledigt. Nun soll/en auch eine/mehrere Datei/en über diese Verbindung versandt werden, die sich in der Zwischenablage befinden. Die Überprüfung, ob sich im Clipboard eine Datei befindet, stellt dabei kein Problem da. <strong>Über Ansätze wäre ich dankbar</strong>. Dazu nachfolgend zwei Richtfragen:</p>
<ul>
<li><em>Was genau befindet sich in der Zwischenablage? (Datei selbst / Pfad zur Datei / Anderes)</em></li>
<li><em>Welche Form des Sendes ist empfehlendswert? (&quot;Quellcode&quot; der Datei als Text senden / Datei über die Windows-Dateifreigabe an Server übergeben)</em></li>
</ul>
<p>Vielen Dank im Voraus<br />
Carsten Bauer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149124/datei-über-netzwerk-versenden-socket</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 09:21:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149124.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Jun 2006 16:58:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Fri, 02 Jun 2006 16:58:36 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
vorhanden ist eine Socket-Verbindung mittels TClient/ServerSocket. Text versenden wird durch <em>Client-&gt;Socket-&gt;SendText(&quot;Text&quot;)</em> erledigt. Nun soll/en auch eine/mehrere Datei/en über diese Verbindung versandt werden, die sich in der Zwischenablage befinden. Die Überprüfung, ob sich im Clipboard eine Datei befindet, stellt dabei kein Problem da. <strong>Über Ansätze wäre ich dankbar</strong>. Dazu nachfolgend zwei Richtfragen:</p>
<ul>
<li><em>Was genau befindet sich in der Zwischenablage? (Datei selbst / Pfad zur Datei / Anderes)</em></li>
<li><em>Welche Form des Sendes ist empfehlendswert? (&quot;Quellcode&quot; der Datei als Text senden / Datei über die Windows-Dateifreigabe an Server übergeben)</em></li>
</ul>
<p>Vielen Dank im Voraus<br />
Carsten Bauer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1070203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1070203</guid><dc:creator><![CDATA[carstenbauer]]></dc:creator><pubDate>Fri, 02 Jun 2006 16:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Fri, 02 Jun 2006 18:08:15 GMT]]></title><description><![CDATA[<p>also ich kann dir schon sagen das es sich um filestream drehen wird aber wie das genau funktioniert wird warscheinlich später nochjemand erwähnen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1070253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1070253</guid><dc:creator><![CDATA[webmaster1987]]></dc:creator><pubDate>Fri, 02 Jun 2006 18:08:15 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Fri, 02 Jun 2006 18:35:05 GMT]]></title><description><![CDATA[<p>Schaue mal in den Examples im Borlandverzeichnis. Bei FastNet oder Indy ist ein gutes Beispiel zum Übertragen von Dateien.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1070277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1070277</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Fri, 02 Jun 2006 18:35:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Sat, 03 Jun 2006 08:39:00 GMT]]></title><description><![CDATA[<p>@<strong>Rostfrei</strong>: Beim BDS 2006 gibts nur ein entsprechendes Demo-Verzeichnis und da befindet sich kein FastNet oder Indy. Bei Letzderem gibts nur Indy10 (ich hab Indy9, da 10 nur mit Delphi läuft), aber selbst wenn ich es hätte, ist kein Beispiel zur Datei-Übertragung vorzufinden.</p>
<p>@<strong>webmaster1987</strong>: Hab mir schon gedacht, dass ich auf Streams zurückgreifen muss, da die Komponente schließlich den Aufbau eines Streams unterstützt. Trotzdem Vielen Dank!</p>
<p>mfg cb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1070569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1070569</guid><dc:creator><![CDATA[carstenbauer]]></dc:creator><pubDate>Sat, 03 Jun 2006 08:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Sun, 04 Jun 2006 22:47:09 GMT]]></title><description><![CDATA[<p>Ok, ich bin auch grad an dem Thema dran. Probier mal ClientSocket1-&gt;Socket-&gt;SendBuf.</p>
<pre><code>[int __fastcall SendBuf(void *Buf, int Count);]
</code></pre>
<p>In den Buffer lädst du den Inhalt der Datei(am besten über einen Zeiger) und gibts die Dateigröße an.</p>
<p>Erzähl mal ob du es hinbekommen hast <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>Gruß Swoosh</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1071412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1071412</guid><dc:creator><![CDATA[Swoosh]]></dc:creator><pubDate>Sun, 04 Jun 2006 22:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Sun, 04 Jun 2006 23:01:25 GMT]]></title><description><![CDATA[<p>Oder mit Indy:</p>
<pre><code class="language-cpp">TFileStream *MyFStream;
MyFStream = new TFileStream(FilePath, fmOpenRead);
try
  {
    NMStrm1-&gt;Host = IP;
    NMStrm1-&gt;FromName = &quot;Server&quot;
    NMStrm1-&gt;PostIt(MyFStream);
  }
catch(...) { }
MyFStream-&gt;Free();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1071417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1071417</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Sun, 04 Jun 2006 23:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 06 Jun 2006 13:55:23 GMT]]></title><description><![CDATA[<p>Die Übertragung klappt einwandfrei! (ich bevorzuge den Stream jedoch ohne Indy)<br />
<strong>Nur wie erhalte ich den Pfad der kopierten Datei.</strong> Wenn ich eine Datei markiere und mit <em>Strg+C</em> kopiere, wird der Datei-Pfad in die Zwischenablage geschrieben (Überprüft mit Start -&gt; Ausführen -&gt; &quot;clipboard.exe&quot; -&gt; Enter), <em>Clipboard()-&gt;AsText</em> liefert allerdings NULL, also nicht den erwünschten Pfad.</p>
<p>Kurz:<br />
Datei wird mit <em>Strg+C</em> kopiert. Wie bekomm ich den Pfad aus der Zwischenablage?</p>
<p>mfg cb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072540</guid><dc:creator><![CDATA[carstenbauer]]></dc:creator><pubDate>Tue, 06 Jun 2006 13:55:23 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Mon, 14 Jan 2008 18:36:11 GMT]]></title><description><![CDATA[<p>Wie kann man den das was man mit</p>
<pre><code class="language-cpp">[int __fastcall SendBuf(void *Buf, int Count);]
</code></pre>
<p>gesendet hat bei der ClientSocket Komponente den wieder empfangen<br />
und speichern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436558</guid><dc:creator><![CDATA[Jeg_D]]></dc:creator><pubDate>Mon, 14 Jan 2008 18:36:11 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Mon, 14 Jan 2008 18:45:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Es gibt vermutlich einen analogen Event. Schau mal in die Builder-Hilfe oder die erwähnten Beispiele.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436568</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 14 Jan 2008 18:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Mon, 14 Jan 2008 18:58:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>das Gegenstück</p>
<pre><code class="language-cpp">Socket-&gt;ReceiveBuf(void *Buf, Count)
</code></pre>
<p>habe ich gefunden, aber ich weiß damit nicht anzufangen<br />
den diese Funktion liefert einen Integer Wert zurück.</p>
<p>Kann mir da einer weiter helfen?</p>
<p>Ich poste mal etwas Quellcode, damit ihr sehen könnt was ich<br />
bis jetzt habe:</p>
<p>Server:</p>
<pre><code class="language-cpp">int iFileHandle;
  int iFileLength;
  // int iBytesRead;
  char *pszBuffer;
  if (OpenDialog1-&gt;Execute())
  {
    try
    {
      iFileHandle = FileOpen(OpenDialog1-&gt;FileName, fmOpenRead);
      iFileLength = FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      pszBuffer = new char[iFileLength+1];
      // iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
      FileClose(iFileHandle);

      try
      {
         winsocket[0]-&gt;SendBuf(pszBuffer, iFileLength);
      }
      catch(...)
      {
         // fehler...
      }

      /*
      for (int i=0;i&lt;iBytesRead;i++)
      {
        StringGrid1-&gt;RowCount += 1;
        StringGrid1-&gt;Cells[1][i+1] = pszBuffer[i];
        StringGrid1-&gt;Cells[2][i+1] = IntToStr((int)pszBuffer[i]);
      }
      */

      delete [] pszBuffer;
    }
    catch(...)
    {
      Application-&gt;MessageBox(&quot;Can't perform one of the following file operations: Open, Seek, Read, Close.&quot;, &quot;File Error&quot;, IDOK);
    }
  }
</code></pre>
<p>CLient:</p>
<pre><code class="language-cpp">int iFileHandle;
int Count = 0;
char *pszBuffer;

Socket-&gt;ReceiveBuf(pszBuffer, Count);

iFileHandle = FileCreate(&quot;C:\\FileFromServer.file&quot;);
FileWrite(iFileHandle, pszBuffer, Count);

delete [] pszBuffer;
</code></pre>
<p>Irgendetwas kommt an, aber was??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436579</guid><dc:creator><![CDATA[Jeg_D]]></dc:creator><pubDate>Mon, 14 Jan 2008 18:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 10:14:42 GMT]]></title><description><![CDATA[<p>Deine Empfangsfunktion ist inkorrekt, du mußt natürlich erst mal Speicher bereitstellen:</p>
<pre><code class="language-cpp">const int Count = 1000;
char *pszBuffer = new char[Count];

int nRead = Socket-&gt;ReceiveBuf(pszBuffer, Count); 

delete [] pszBuffer;
</code></pre>
<p>Der Rückgabewert ist die Anzahl der gelesenen Bytes (oder -1 bei Fehler).<br />
Nun das ganze noch in eine Schleife packen und den Puffer in eine Datei (oder einen Stream) schreiben und das war's dann schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436863</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Tue, 15 Jan 2008 10:14:42 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 14:31:56 GMT]]></title><description><![CDATA[<p>Hi Th,</p>
<p>ich versteh leider nicht ganz was du mit der Schleife meinst.<br />
Kann man den Inhalt des Buffers jetzt nicht einfach speichern?</p>
<p>Könntest du mir ein Beispiel für die Schleife schreiben?</p>
<p>Gruß<br />
Jeg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437085</guid><dc:creator><![CDATA[Jeg_D]]></dc:creator><pubDate>Tue, 15 Jan 2008 14:31:56 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 14:42:12 GMT]]></title><description><![CDATA[<p>Wobei Du wenn ich mich noch recht entsinne es vorher so machen solltest<br />
das Du als Text überträgst,</p>
<p>TX -&gt; RX<br />
Vorsicht &quot;File incomming&quot;</p>
<p>Dabei überträgst Du schon den Namen der Datei sowie die finale Dateigröße.</p>
<p>Dann fänsgt Du an den Stream zu übertragen.</p>
<p>Nun musst Du dir wohl oder übel ein kleines Protokoll schreiben.<br />
Immerhin kannst Du nicht davon ausgehen das alle Daten immer<br />
vollständig am Ziel ankommen. In der FAQ ist meines Wissens nach<br />
ein netter Link zur Protokollentwicklung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437098</guid><dc:creator><![CDATA[Slashi]]></dc:creator><pubDate>Tue, 15 Jan 2008 14:42:12 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 15:44:49 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hatte aber mal gerne gewusst wie ich die<br />
Schleife realisiere um das so hinzubekommen<br />
wie Th es beschrieben hat.</p>
<p>Gruß<br />
Jeg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437145</guid><dc:creator><![CDATA[Jeg_D]]></dc:creator><pubDate>Tue, 15 Jan 2008 15:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 15:50:10 GMT]]></title><description><![CDATA[<p>Wenn Du 500000 Byte senden willst und jedes mal<br />
1000 Byte ankommen, denke ich mal solltest Du solange<br />
schreiben bis die 500000 Byte allesamt da sind würde<br />
ich jetzt mal vermuten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437148</guid><dc:creator><![CDATA[Slashi]]></dc:creator><pubDate>Tue, 15 Jan 2008 15:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 15:57:57 GMT]]></title><description><![CDATA[<p>Hi Slashi,</p>
<p>das klingt logisch aber den Vorgang &quot;Schreiben&quot; hätte<br />
ich gerne näher erläutern, ggf. ein Besipiel gesehen.</p>
<p>Gruß<br />
Jeg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437154</guid><dc:creator><![CDATA[Jeg_D]]></dc:creator><pubDate>Tue, 15 Jan 2008 15:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 20:17:54 GMT]]></title><description><![CDATA[<p>Der Aufruf von SendBuf überträgt nicht wirklich die Daten übers Netz, sondern füllt zunächst nur die OS-internen Puffer. Das geht solange, bis die Puffer voll sind. Ist das der Fall (Rückgabewert auswerten!), muß gewartet werden, bis wieder Platz im Puffer ist. Das eigentliche Übertragen übernimmt dann das Betriebssystem. Du als Anwender hast keinen Einfluß darauf, in welcher Zeit und in welchen Blöcken das geschieht. Es ist lediglich sichergestellt, das alles vollständig und in der richtigen Reihenfolge ankommt. Das heißt, dass höchstwahrscheinlich mit jedem Aufruf von ReceiveBuf nur ein Teil deiner Datei ankommt. Du musst also die Datei stückenweise wieder zusammensetzen, bis alles vollständig angekommen ist. Wann das ist, dazu benötigst du ein Protokoll.</p>
<p>Rob'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437271</guid><dc:creator><![CDATA[Rob&#x27;]]></dc:creator><pubDate>Tue, 15 Jan 2008 20:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Datei über Netzwerk versenden (Socket) on Tue, 15 Jan 2008 20:55:37 GMT]]></title><description><![CDATA[<p>Hi Rob,</p>
<p>vielen dank für deine Erläuterung.<br />
Ich habe mir das anscheinend etwas zu leicht<br />
vorgestellt. Werde mich also demnächst mal einer<br />
intensiven Lektüre zu diesem Thema widmen.</p>
<p>Gruß<br />
Jeg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437287</guid><dc:creator><![CDATA[Jeg_D]]></dc:creator><pubDate>Tue, 15 Jan 2008 20:55:37 GMT</pubDate></item></channel></rss>