<?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[Grösse v. RemoteDatei auf FTP Server via CAsyncSocket::IOCtl]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche die Grösse einer Datei herauzufinden, welche vom FTP Server gesendet bekomme.</p>
<p>Dies klappt auch... ABER nur wenn die Remote Dateien in etwa kleiner als 64kb sind. Teilweise aber auch schon nicht mehr wenn die Files knapp an die 60kb rankommen.<br />
In diesem Fall kommen immer Werte zurück, die kleiner sind als die Dateigrösse in bytes, und diese Werte sind auch noch bei jedem Versuch wieder anders... Sad</p>
<p>Wo liegt da die Begrenzung ? Oder muss ich irgendwo einen Timeout erhöhen damit er Zeit hat die Grösse zu zählen ?</p>
<p>Hier mal das Codestück:</p>
<pre><code class="language-cpp">CAsyncSocket datachannel;
DWORD lpArgument=0;
int lpOptionValue;
int optlen;

// RETR Command gesendet, und 100er Code als Antwort vom Server erhalten           

if((!datachannel.AsyncSelect(0))||(!datachannel.IOCtl(FIONBIO,&amp;lpArgument))) {
   m_retmsg.LoadString(IDS_FTPMSG6);
   return FALSE;
}

   // TODO: +++
   lpOptionValue = 0x100000; // RecvBuffer auf Max 1MB setzen
   optlen = sizeof(lpOptionValue);
   i = datachannel.SetSockOpt(SO_RCVBUF, &amp;lpOptionValue, optlen);

   i = datachannel.IOCtl(FIONREAD,&amp;lpArgument);
</code></pre>
<p>Ich bedanke mich schonmal für Antworten und hoffe somit auch welche zu kriegen <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>Jan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/148331/grösse-v-remotedatei-auf-ftp-server-via-casyncsocket-ioctl</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 17:42:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148331.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 May 2006 15:45:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Grösse v. RemoteDatei auf FTP Server via CAsyncSocket::IOCtl on Thu, 25 May 2006 15:46:56 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche die Grösse einer Datei herauzufinden, welche vom FTP Server gesendet bekomme.</p>
<p>Dies klappt auch... ABER nur wenn die Remote Dateien in etwa kleiner als 64kb sind. Teilweise aber auch schon nicht mehr wenn die Files knapp an die 60kb rankommen.<br />
In diesem Fall kommen immer Werte zurück, die kleiner sind als die Dateigrösse in bytes, und diese Werte sind auch noch bei jedem Versuch wieder anders... Sad</p>
<p>Wo liegt da die Begrenzung ? Oder muss ich irgendwo einen Timeout erhöhen damit er Zeit hat die Grösse zu zählen ?</p>
<p>Hier mal das Codestück:</p>
<pre><code class="language-cpp">CAsyncSocket datachannel;
DWORD lpArgument=0;
int lpOptionValue;
int optlen;

// RETR Command gesendet, und 100er Code als Antwort vom Server erhalten           

if((!datachannel.AsyncSelect(0))||(!datachannel.IOCtl(FIONBIO,&amp;lpArgument))) {
   m_retmsg.LoadString(IDS_FTPMSG6);
   return FALSE;
}

   // TODO: +++
   lpOptionValue = 0x100000; // RecvBuffer auf Max 1MB setzen
   optlen = sizeof(lpOptionValue);
   i = datachannel.SetSockOpt(SO_RCVBUF, &amp;lpOptionValue, optlen);

   i = datachannel.IOCtl(FIONREAD,&amp;lpArgument);
</code></pre>
<p>Ich bedanke mich schonmal für Antworten und hoffe somit auch welche zu kriegen <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>Jan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1064977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1064977</guid><dc:creator><![CDATA[_Jan_]]></dc:creator><pubDate>Thu, 25 May 2006 15:46:56 GMT</pubDate></item><item><title><![CDATA[Reply to Grösse v. RemoteDatei auf FTP Server via CAsyncSocket::IOCtl on Thu, 25 May 2006 19:07:27 GMT]]></title><description><![CDATA[<p>verzichte auf den müll mit FIONREAD. das braucht man nicht und ist auch nicht gut.</p>
<p>und die größe des internen receive-buffers musste auch nicht dran rumfrickeln!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065090</guid><dc:creator><![CDATA[tipp]]></dc:creator><pubDate>Thu, 25 May 2006 19:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to Grösse v. RemoteDatei auf FTP Server via CAsyncSocket::IOCtl on Thu, 25 May 2006 19:25:35 GMT]]></title><description><![CDATA[<p>Die Kritik war schonmal gut. An dem konstruktiven Teil deines Posts arbeiten wir nochmal...</p>
<p>Naja habs rausgefunden. Dachte halt man könnte dadurch die Grösse der Datei auf dem Server bestimmen ohne die Datei herunterzuladen. Die daten müssen aber alle an den Socket gesendet werden um die grösse zu ermitteln, somit bringt mir das nichts. Werde die grösse doch aus der Rückgabe des LIST Commands rausfrickeln müssen :-\</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1065100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1065100</guid><dc:creator><![CDATA[_Jan_]]></dc:creator><pubDate>Thu, 25 May 2006 19:25:35 GMT</pubDate></item></channel></rss>