<?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[Dateitransfehr]]></title><description><![CDATA[<p>ich will meinem programm sagen das er ne datei von server zu client schicken soll. hab ich auch schon alles getestet. aber das klappt nur bei *.txt -dateien !! ich mache das so (code habe ich von codeguru <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>
<p>Server:</p>
<pre><code class="language-cpp">void SendFile()
{
 #define PORT 34000 /// Select any free port you wish

 AfxSocketInit(NULL);
 CSocket sockSrvr; 
 sockSrvr.Create(PORT); // Creates our server socket
 sockSrvr.Listen(); // Start listening for the client at PORT
 CSocket sockRecv;
 sockSrvr.Accept(sockRecv); // Use another CSocket to accept the connection

 CFile myFile;
 myFile.Open(&quot;C:\\ANYFILE.EXE&quot;, CFile::modeRead | CFile::typeBinary); 

 int myFileLength = myFile.GetLength(); // Going to send the correct File Size

 sockRecv.Send(&amp;myFileLength, 4); // 4 bytes long

 byte* data = new byte[myFileLength]; 

 myFile.Read(data, myFileLength);

 sockRecv.Send(data, myFileLength); //Send the whole thing now

 myFile.Close();
 delete data;

 sockRecv.Close();
}
</code></pre>
<p>Client:</p>
<pre><code class="language-cpp">void GetFile()
{
 #define PORT 34000 /// Select any free port you wish

 AfxSocketInit(NULL);
 CSocket sockClient;
 sockClient.Create();

 // &quot;127.0.0.1&quot; is the IP to your server, same port
 sockClient.Connect(&quot;127.0.0.1&quot;, PORT); 

 int dataLength;
 sockClient.Receive(&amp;dataLength, 4); //Now we get the File Size first

 byte* data = new byte[dataLength];
 sockClient.Receive(data, dataLength); //Get the whole thing

 CFile destFile(&quot;C:\\temp\\ANYFILE.EXE&quot;, 
  CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);

 destFile.Write(data, dataLength); // Write it

 destFile.Close();

 delete data;
 sockClient.Close();
}
</code></pre>
<p>er kopiert die datei ja nicht, sondern ließt die datei aus und sendet die zeichen an den client, der sie dann in eine datei schreibt. oder sehe ich das falsch !?</p>
<p>wenn nein, kennt jemand eine saubere methode um dateien vernünftig zu senden und sie danach noch benutzen zu können ??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/71528/dateitransfehr</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 08:30:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/71528.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Apr 2004 15:29:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 15:29:57 GMT]]></title><description><![CDATA[<p>ich will meinem programm sagen das er ne datei von server zu client schicken soll. hab ich auch schon alles getestet. aber das klappt nur bei *.txt -dateien !! ich mache das so (code habe ich von codeguru <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>
<p>Server:</p>
<pre><code class="language-cpp">void SendFile()
{
 #define PORT 34000 /// Select any free port you wish

 AfxSocketInit(NULL);
 CSocket sockSrvr; 
 sockSrvr.Create(PORT); // Creates our server socket
 sockSrvr.Listen(); // Start listening for the client at PORT
 CSocket sockRecv;
 sockSrvr.Accept(sockRecv); // Use another CSocket to accept the connection

 CFile myFile;
 myFile.Open(&quot;C:\\ANYFILE.EXE&quot;, CFile::modeRead | CFile::typeBinary); 

 int myFileLength = myFile.GetLength(); // Going to send the correct File Size

 sockRecv.Send(&amp;myFileLength, 4); // 4 bytes long

 byte* data = new byte[myFileLength]; 

 myFile.Read(data, myFileLength);

 sockRecv.Send(data, myFileLength); //Send the whole thing now

 myFile.Close();
 delete data;

 sockRecv.Close();
}
</code></pre>
<p>Client:</p>
<pre><code class="language-cpp">void GetFile()
{
 #define PORT 34000 /// Select any free port you wish

 AfxSocketInit(NULL);
 CSocket sockClient;
 sockClient.Create();

 // &quot;127.0.0.1&quot; is the IP to your server, same port
 sockClient.Connect(&quot;127.0.0.1&quot;, PORT); 

 int dataLength;
 sockClient.Receive(&amp;dataLength, 4); //Now we get the File Size first

 byte* data = new byte[dataLength];
 sockClient.Receive(data, dataLength); //Get the whole thing

 CFile destFile(&quot;C:\\temp\\ANYFILE.EXE&quot;, 
  CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);

 destFile.Write(data, dataLength); // Write it

 destFile.Close();

 delete data;
 sockClient.Close();
}
</code></pre>
<p>er kopiert die datei ja nicht, sondern ließt die datei aus und sendet die zeichen an den client, der sie dann in eine datei schreibt. oder sehe ich das falsch !?</p>
<p>wenn nein, kennt jemand eine saubere methode um dateien vernünftig zu senden und sie danach noch benutzen zu können ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504488</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Mon, 19 Apr 2004 15:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 15:43:17 GMT]]></title><description><![CDATA[<p>Hm, der Code scheint richtig zu sein. Müsste also bei jeder Datei funktionieren.<br />
Die SendFile-Funktion liest die Datei Byteweise ein und schickt diese Bytes an den Client, der diese empfangenen Bytes in GetFile in eine Datei schreibt.<br />
Es wird der Datentyp char verwendet, da er genau 1 Byte groß ist.<br />
Allerdings solltest du den Code nicht so verwenden, da z.B. jegliche Art von Fehlerüberprüfung fehlt. Außerdem solltest du (zumindest bei größeren Dateien) die Klasse CAsyncSocket anstatt CSocket verwenden.</p>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504502</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Mon, 19 Apr 2004 15:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 16:34:06 GMT]]></title><description><![CDATA[<p>ja, hast recht. das funktioniert ja auch wirklich alles: die dateien kommen auch alle an, egal welche ich suche. nur wwenn ich die dateien dann öffnen will, kann er keine (ausser textdateien) öffnen. das ist genau so als ob du direkt ein bitmap mit dem editor öffnest und dann diesen ganzen müll den er dann ausgibt speicherst. er machts halt genau so wie du gesagt hast !!</p>
<p>aber kennst du auch ne funktion die die dateien so ´von server zu client überträgt, als ob man eine datei wirklich kopiert (mit datei markieren -&gt; kopieren drücken -&gt; wo anders einfügen drücken) und nicht ausließt !?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504544</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Mon, 19 Apr 2004 16:34:06 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 18:06:14 GMT]]></title><description><![CDATA[<p>die Funktionen machen nichts anderes als eine Datei über das Netzwerk zu kopieren (was denn sonst <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 />
Wenn die Datei nicht richtig geöffnet werden kann, dann liegt es an der falschen Dateiendung, die du ihr gegeben hast. Denn wer öffnet schon ein Bitmap mit Notpad? <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 />
Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504623</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Mon, 19 Apr 2004 18:06:14 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 18:45:31 GMT]]></title><description><![CDATA[<p>ne, ne. du verstehst nicht was ich meine <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 />
ich will die datei vom server zum client senden. wenn ich das mache, dann ließt der server die einzelnnen zeichen aus der datei aus, kopiert sie über das netzwerk zum client und der schreibt alles zeichen für zeichen in eine datei. ich nenne die datei, die ich übertragen hab jetzt mal genau so wie die ausgangsdatei. wenn ich die neue datei dann aber öffne kann er mir ja gar nichts vernünftiges ausgeben. WEIL: er hat den ASCII-code in eine datei geschrieben, genau so als ob man den ganzen kran der da in der datei steht selbst eingeben würde, verstehste was ich meine !?? desswegen kann er doch auch nur normale text-datien korrekt wiedergeben.</p>
<p>ich will aber nicht das er die datei zeichen für zeichen dareinschreibt, ich will das er 1 zu 1 kopiert. wenn du eine normale datei in windows kopierst dann schreibt er auch nicht den inhalt den er aus der quelldatei ließt in eine neueangelegte datei und gibt ihr nen entsprechenden dateinamen, abgeletet vom dateinahmen der quelldatei.</p>
<p>ich suche nur ne funktion die genau so kopiert über das netzwerk wie windows das macht.</p>
<p>*puh* das kann man doch jetzt nur noch so verstehen wie ich das meine, oder ?! :D:D</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504663</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Mon, 19 Apr 2004 18:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 19:18:00 GMT]]></title><description><![CDATA[<p>Yea <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="😃"
    /> <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="😃"
    /><br />
Du hast was falsch verstanden <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 />
Du öffnest die Zieldatei (auf dem Client) eindeutig im Binärmodus.<br />
Dann wird nämlich der Parameter data von</p>
<pre><code class="language-cpp">destFile.Write(data, dataLength); // Write it
</code></pre>
<p>nicht als ASCII-Zeichencodes interpretiert, sondern als das, was er eigendlich ist: ein Array von Bytes.<br />
Glaubs mir doch endlich :p</p>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504696</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Mon, 19 Apr 2004 19:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Mon, 19 Apr 2004 19:45:02 GMT]]></title><description><![CDATA[<p>ja, äh <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 kopiert er das schon so wie ich das haben will oder wie !?</p>
<p>aber wenn ja: warum kann er die übertragenden dateien nicht öffnen ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/504730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/504730</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Mon, 19 Apr 2004 19:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Tue, 20 Apr 2004 10:48:58 GMT]]></title><description><![CDATA[<p>Red Skall schrieb:</p>
<blockquote>
<p>also kopiert er das schon so wie ich das haben will oder wie !?</p>
</blockquote>
<p>Genau <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>Red Skall schrieb:</p>
<blockquote>
<p>aber wenn ja: warum kann er die übertragenden dateien nicht öffnen ??</p>
</blockquote>
<p>Wer kann die Dateien nicht öffnen? Du? Das Programm? Existiert die kopierte Datei?</p>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505063</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 20 Apr 2004 10:48:58 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Tue, 20 Apr 2004 13:22:35 GMT]]></title><description><![CDATA[<p>wenn ich z.b. eine datei vom verser emfangen hab, kann ich sie nicht öffnen. also wenn ich doppelklick halt auf die emfangene datei machen will</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505237</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Tue, 20 Apr 2004 13:22:35 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Tue, 20 Apr 2004 14:08:12 GMT]]></title><description><![CDATA[<p>Welche Dateiendung hat die Datei?<br />
Was kommt für ein Fehler, wenn du sie öffnest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505310</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 20 Apr 2004 14:08:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Tue, 20 Apr 2004 15:56:17 GMT]]></title><description><![CDATA[<p>ist bi allen dateien schätze ich mal die normalerweise nicht im ASCII-format gespeichert werden. aber ich hab zum test ne *.bmp übertragen. eigentlich sind auf dem bild 2 frauen <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="😃"
    /> drauf, und das ist in farbe. wenn ich das bild dann öffne, ist das ganze bild grau !! als ich ne übertragene *.mpg file mit dem windowsmediaplayer öffnen wollte, hat er gesagt das er nicht abspielen kann weil ein unbekannter fehler festgestellt wurde</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505416</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Tue, 20 Apr 2004 15:56:17 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Tue, 20 Apr 2004 18:13:00 GMT]]></title><description><![CDATA[<p>hm, stimmen die Dateigrößen überein?<br />
Der Code ist eigendlich in Ordnung (schon allein deswegen, weil er von Codeproject ist)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505523</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 20 Apr 2004 18:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Tue, 20 Apr 2004 19:24:07 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also das Problem wurde bei Codeguru schon besprochen.<br />
Erst soll es daran gelegen haben,d ass die Dateien größer 10KB<br />
bzw 100Kb waren. Dann hat einer ne Lösung gepostet:</p>
<p><a href="http://www.codeguru.com/Cpp/I-N/network/winsocksolutions/comments.php/c2491/?thread=33146" rel="nofollow">http://www.codeguru.com/Cpp/I-N/network/winsocksolutions/comments.php/c2491/?thread=33146</a></p>
<p><a href="http://www.codeguru.com/Cpp/I-N/network/winsocksolutions/comments.php/c2491/" rel="nofollow">http://www.codeguru.com/Cpp/I-N/network/winsocksolutions/comments.php/c2491/</a></p>
<pre><code class="language-cpp">I changed my &quot;GetFile&quot; function to the one below to get executables to work. 

///////////////////////////////////////////////////////////////////////////// 
void GetFile() 
{ 
#define PORT 34000 /// Select any free port you wish 

AfxSocketInit(NULL); 
CSocket sockClient; 
sockClient.Create(); 

// &quot;127.0.0.1&quot; is the IP to your server, same port 
sockClient.Connect(&quot;127.0.0.1&quot;, PORT); 

int dataLength; 
sockClient.Receive(&amp;dataLength, 4); //Now we get the File Size first 

CFile destFile(&quot;C:\\output.exe&quot;, 
CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); 

byte* data = new byte[dataLength]; 
int recvBytes = 0; 

recvBytes = sockClient.Receive(data, dataLength); //Get the whole thing 
destFile.Write(data, recvBytes); // Write it 

while (recvBytes &gt; 0) 
{ 
recvBytes = sockClient.Receive(data, dataLength); //Get the whole thing 
destFile.Write(data, recvBytes); // Write it 
} 

destFile.Close(); 
delete data; 
sockClient.Close(); 
} 
/////////////////////////////////////////////////////////////////////////////
</code></pre>
<p>Ich habs damals auch mal probiert, aber ich glaube es hat nicht so wirklich<br />
geklappt <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="🙄"
    /><br />
Good Luck. Wenn es geht bitte ganzen Code hier posten <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>
]]></description><link>https://www.c-plusplus.net/forum/post/505571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505571</guid><dc:creator><![CDATA[Kristof]]></dc:creator><pubDate>Tue, 20 Apr 2004 19:24:07 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Wed, 21 Apr 2004 11:18:53 GMT]]></title><description><![CDATA[<p>Hm,<br />
Hab zwar noch nie mit CSocket gearbeitet, aber ich finde den Code komisch.</p>
<p>Er schreibt einfach alle Bytes bis auf die 1. 4 in eine Datei <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>Es könnte sein (weiß nicht genau), dass Teile der Pakete verloren gehen.<br />
Start mal den Server und den Clienten auf dem gleichen Rechner und versuche so zu kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505964</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Wed, 21 Apr 2004 11:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Wed, 21 Apr 2004 11:59:31 GMT]]></title><description><![CDATA[<p>hab ich schon gemacht, euf gleichem rechner zu testen. kommt aber das selbe ergebnis raus <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="🙄"
    />. danke für das beispiel von codeproject @Kristof. probiere ich gleich mal aus, muß nur noch was eben im garten machen <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>[EDIT]<br />
Ok, habs getestet und siehe da ... es geht :D. danke danke !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/505980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/505980</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Wed, 21 Apr 2004 11:59:31 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Wed, 21 Apr 2004 18:03:08 GMT]]></title><description><![CDATA[<p>Na dann Glückwunsch. Kannst du Client + Server bitte mal hier posten ?<br />
Wäre nett, denn bei mir (oh Wunder) gehts noch nicht. Und die Frage<br />
nach dem Dateitransfer wird sicher noch öfter kommen <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/506352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506352</guid><dc:creator><![CDATA[Kristof]]></dc:creator><pubDate>Wed, 21 Apr 2004 18:03:08 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 12:13:12 GMT]]></title><description><![CDATA[<p>oh sorry, hast ja gesagt ich solls posten. ok hier ist der code:<br />
(ach ja.: ich habe nur was am client geändert, nichts am server !!)</p>
<p>Aber trotzdem der code vom server:</p>
<pre><code class="language-cpp">CSocket sockSrvr; 
			CSocket sockRecv;
			CFile fFile;
			int iFileLength;

			AfxSocketInit(NULL);

			// FILESEND_PORT = port für übertragung
			sockSrvr.Create(FILESEND_PORT);
			sockSrvr.Listen();

			// hier dem client mitteilen das er den transfehr starten soll, zumindest ist es so bei meinem programm

			if (sockSrvr.Accept(sockRecv))
			{
				// cFSend_File = quellfile
				fFile.Open(cFSend_File, CFile::modeRead | CFile::typeBinary); 

				iFileLength = fFile.GetLength();
				sockRecv.Send(&amp;iFileLength, 4); // 4 bytes long

				byte* data = new byte[iFileLength]; 

				fFile.Read(data, iFileLength);
				sockRecv.Send(data, iFileLength); //Send the whole thing now

				fFile.Close();
				delete data;

				sockRecv.Close();
			}
			else
			{
				// fehlermeldung ausgeben ...
			}
</code></pre>
<p>client:</p>
<pre><code class="language-cpp">AfxSocketInit(NULL);
			CSocket sockClient;
			sockClient.Create();

			// cInformation1 = ip adresse, FILESEND_PORT = port für übertragung
			if (sockClient.Connect(cInformation1, FILESEND_PORT))
			{
				int dataLength;

				sockClient.Receive(&amp;dataLength, 4); //Now we get the File Size first 

				// cFSend_File = zielfile
				CFile destFile(cFSend_File, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); 

				byte* data = new byte[dataLength]; 
				int recvBytes = 0; 

				recvBytes = sockClient.Receive(data, dataLength); //Get the whole thing 
				destFile.Write(data, recvBytes); // Write it 

				while (recvBytes &gt; 0) 
				{ 
					recvBytes = sockClient.Receive(data, dataLength); //Get the whole thing 
					destFile.Write(data, recvBytes); // Write it 
				} 

				destFile.Close();
				delete data;
				sockClient.Close();
			}
			else
			{
				// fehlermeldung ...
			}
</code></pre>
<p>das müsste aber auch bei dir laufen !? ich hab den code auch 1 zu 1 übernommen von codeguru. habe nur die entsprechenden variablen bei mir geändert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506730</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Thu, 22 Apr 2004 12:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 14:30:29 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich halte folgenden Code immer noch für Doppeltgemoppelt <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>Red Skall schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int recvBytes = 0; 

				recvBytes = sockClient.Receive(data, dataLength); //Get the whole thing 
				destFile.Write(data, recvBytes); // Write it 

				while (recvBytes &gt; 0) 
				{ 
					recvBytes = sockClient.Receive(data, dataLength); //Get the whole thing 
					destFile.Write(data, recvBytes); // Write it 
				}
</code></pre>
</blockquote>
<p>Könnte das noch jemand klären/erklären? <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/506818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506818</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Thu, 22 Apr 2004 14:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 14:37:30 GMT]]></title><description><![CDATA[<p>ich habe mal ne doofe frage,<br />
ich habe die beiträge kurz und sehr leicht überflogen..</p>
<p>ich habe es so verstanden die Dateien können nicht korrekt geöffnet werden?</p>
<p>vieleicht liegt an der Länge der Datei, du benutzt nen Int fuer die Länge der Datei...</p>
<p>kann ja sein das der int überläuft bzw. nicht die genaue grösse der Bytes besitzt die geschickt werden sollen?<br />
ich benutze ein DWORD und habe keine probs....</p>
<p>MfG<br />
T1c4L</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506826</guid><dc:creator><![CDATA[T1c4L]]></dc:creator><pubDate>Thu, 22 Apr 2004 14:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 14:43:33 GMT]]></title><description><![CDATA[<p>Yea, das könnte eine Lösung sein und würde auch erklären<br />
- warum Textdateien erfolgreich geschickt werden können (sie sind so klein, dass es keinen Überlauf gibt)<br />
- warum der Doppelmoppelcode funktioniert</p>
<p>andererseits: das int ist signed und wird bei einem Überlauf negativ, was bei folgendem Code Probleme macht: new byte[dataLength]; (Access Violation)<br />
Es müsste schon ein verdammter Glücksfall sein, dass die Dateien gerade so groß werden, dass dataLength bei einem Überlauf wieder positiv wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506833</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Thu, 22 Apr 2004 14:43:33 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 14:47:08 GMT]]></title><description><![CDATA[<p>word das find ich auch mekrwürdig... da sollte mindestens abstürzen wenn er nen überlauf bekommen sollte...</p>
<p>mhmm ich mache das so ähnlich, aber halt nicht zwischen server/client...</p>
<p>der CFile::Write() braucht als buffer nen const* void.... kann sein das er negative auch nimmt? und deswegen kein fehler auftritt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506839</guid><dc:creator><![CDATA[T1c4L]]></dc:creator><pubDate>Thu, 22 Apr 2004 14:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 18:05:11 GMT]]></title><description><![CDATA[<p>schätze auch das es am int liegen wird, aber wenn das mit dem DWORD keine probleme gibt, dann nehme ich das auch. mann könnte doch auch einfach ein unsgned long nehmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506948</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Thu, 22 Apr 2004 18:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 18:19:13 GMT]]></title><description><![CDATA[<p>DWORD ist unsigned long <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/506956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506956</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Thu, 22 Apr 2004 18:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 18:20:53 GMT]]></title><description><![CDATA[<p>lol, erhlich ?? :D, gut zu wissen ^^<br />
also kann man auch sagen:</p>
<pre><code class="language-cpp">DWORD d = 4;
unsigned long l;
l = d;
</code></pre>
<p>oder wie !?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506958</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Thu, 22 Apr 2004 18:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 18:25:33 GMT]]></title><description><![CDATA[<p>Klar, und das sogar ohne cast:<br />
So ist DWORD deklariert:</p>
<pre><code class="language-cpp">typedef unsigned long DWORD;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/506963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506963</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Thu, 22 Apr 2004 18:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to Dateitransfehr on Thu, 22 Apr 2004 18:30:02 GMT]]></title><description><![CDATA[<p>habs gerade getestet ;). man hier lernt man immer dazu !!<br />
dann ist das problem ja geklärt :p:p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/506964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/506964</guid><dc:creator><![CDATA[Red Skall]]></dc:creator><pubDate>Thu, 22 Apr 2004 18:30:02 GMT</pubDate></item></channel></rss>