<?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[übertragungsgeschwindigkeit ausrechnen...]]></title><description><![CDATA[<p>hi leute!<br />
ich will die übertragungsgeschw meines filetransfers berechnen....<br />
empfange da in der schleife die bytes...<br />
muss ich das irgendwie mit timer messung machen? will relativ genau sein...<br />
nach dem empfang des ersten paketes timer starten bis das nexte paket kommt?<br />
wie initialisiere u verwende ich den timer?</p>
<p>empfangsseite:</p>
<pre><code class="language-cpp">char buffer[1024];

		DWORD bytesReceivedTotal = 0;

		while(bytesReceivedTotal &lt; fileInfo.size)
		{
			int bytesReceived = socket.receive(buffer, sizeof(buffer));
			bytesReceivedTotal += bytesReceived;

			DWORD bytesWritten;
			WriteFile(fileHandle, buffer, bytesReceived, &amp;bytesWritten, NULL);

			int pos = static_cast&lt;int&gt;(static_cast&lt;float&gt;(bytesReceivedTotal) / fileInfo.size * 100);
			std::cout &lt;&lt; pos &lt;&lt; std::endl;

			SendMessage(hProgress, PBM_SETPOS, (WPARAM) pos, 0);
		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/82783/übertragungsgeschwindigkeit-ausrechnen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 08:29:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/82783.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Aug 2004 22:29:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Fri, 13 Aug 2004 22:29:56 GMT]]></title><description><![CDATA[<p>hi leute!<br />
ich will die übertragungsgeschw meines filetransfers berechnen....<br />
empfange da in der schleife die bytes...<br />
muss ich das irgendwie mit timer messung machen? will relativ genau sein...<br />
nach dem empfang des ersten paketes timer starten bis das nexte paket kommt?<br />
wie initialisiere u verwende ich den timer?</p>
<p>empfangsseite:</p>
<pre><code class="language-cpp">char buffer[1024];

		DWORD bytesReceivedTotal = 0;

		while(bytesReceivedTotal &lt; fileInfo.size)
		{
			int bytesReceived = socket.receive(buffer, sizeof(buffer));
			bytesReceivedTotal += bytesReceived;

			DWORD bytesWritten;
			WriteFile(fileHandle, buffer, bytesReceived, &amp;bytesWritten, NULL);

			int pos = static_cast&lt;int&gt;(static_cast&lt;float&gt;(bytesReceivedTotal) / fileInfo.size * 100);
			std::cout &lt;&lt; pos &lt;&lt; std::endl;

			SendMessage(hProgress, PBM_SETPOS, (WPARAM) pos, 0);
		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/582416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582416</guid><dc:creator><![CDATA[coder1]]></dc:creator><pubDate>Fri, 13 Aug 2004 22:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Sat, 14 Aug 2004 08:31:15 GMT]]></title><description><![CDATA[<p>Für sowas sollte eigentlich <a href="http://msdn.microsoft.com/library/en-us/sysinfo/base/gettickcount.asp" rel="nofollow">GetTickCount</a> genügen <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/582492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582492</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 14 Aug 2004 08:31:15 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Sat, 14 Aug 2004 10:36:19 GMT]]></title><description><![CDATA[<p>hi<br />
ich mach das so im mom:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;

std::string fileName; // global
std::stringstream kb_sec; // global

//////////////////// empfangen ////////////////////////

char buffer[1024];

DWORD bytesReceivedTotal = 0;

time_t start, last = 0; 
start = time(0);
double kbytes_sec = 0;
DWORD bytesReceivedLast = 0;

while(bytesReceivedTotal &lt; fileInfo.size)
{
	int bytesReceived = socket.receive(buffer, sizeof(buffer));
	bytesReceivedTotal += bytesReceived;

	if(time(0) - last &gt;= 1) 
	{
		kbytes_sec = (double) ((bytesReceivedTotal - bytesReceivedLast) / 1024.0);
		kb_sec &lt;&lt; kbytes_sec;
                // Hauptfenster neu zeichnen
		InvalidateRect(hwnd, NULL, TRUE);
		kb_sec.str (&quot;&quot;);
		last = time(0);
		bytesReceivedLast = bytesReceivedTotal;
		std::cout &lt;&lt; kbytes_sec &lt;&lt; std::endl;
	}

	DWORD bytesWritten;
	WriteFile(fileHandle, buffer, bytesReceived, &amp;bytesWritten, NULL);

	int pos = static_cast&lt;int&gt;(static_cast&lt;float&gt;(bytesReceivedTotal) / fileInfo.size * 100);
	//std::cout &lt;&lt; pos &lt;&lt; std::endl;

	SendMessage(hProgress, PBM_SETPOS, (WPARAM) pos, 0);
}

/////////////////// in der Hauptnachrichtenschleife ////////////////////

   case WM_PAINT:
      hdc = BeginPaint (hwnd, &amp;ps);
      TextOut (hdc, 0, 0, fileName.c_str(), fileName.length());   // Filename in Hauptfenster schreiben
	  TextOut (hdc, 100, 50, kb_sec.str().c_str(), kb_sec.str().length());  // Kb_sec in Hauptfenster schreiben
      EndPaint (hwnd, &amp;ps);
      return 0;
</code></pre>
<p>irgendwie bekomm ich keine gescheiden werte;-( 200 kommt raus..hmm und in textout wird das a nit gescheid angezeigt....manchmal zeigts ein leeres feld an...was mach ich da falsch??</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582536</guid><dc:creator><![CDATA[coder1]]></dc:creator><pubDate>Sat, 14 Aug 2004 10:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Sat, 14 Aug 2004 12:05:40 GMT]]></title><description><![CDATA[<p>die methode funzt;-))))<br />
aber zeigt nur einen genauen wert an wenn ich über 5kb/sec übertrage? wäre nicht besser ein timer der alle 1 sec die berechnungsfunktion aufruft?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582594</guid><dc:creator><![CDATA[coder1]]></dc:creator><pubDate>Sat, 14 Aug 2004 12:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Sat, 14 Aug 2004 13:21:58 GMT]]></title><description><![CDATA[<p>Du kannst ja mit <a href="http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/timers/timerreference/timerfunctions/settimer.asp" rel="nofollow">SetTimer</a> einen Timer einrichten und dann in WM_TIMER mit GetTickCount die tatsächlich vergangene Zeit ermitteln und dann die Übertragungsgeschwindigkeit daraus ermitteln. Diese dann z.B. in einem Static-Control ausgeben oder direkt ins Hauptfenster schreiben (InvalidateRect und dann in WM_PAINT zeichnen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582643</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 14 Aug 2004 13:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Sat, 14 Aug 2004 17:19:58 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Du kannst ja mit <a href="http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/timers/timerreference/timerfunctions/settimer.asp" rel="nofollow">SetTimer</a> einen Timer einrichten und dann in WM_TIMER mit GetTickCount die tatsächlich vergangene Zeit ermitteln und dann die Übertragungsgeschwindigkeit daraus ermitteln. Diese dann z.B. in einem Static-Control ausgeben oder direkt ins Hauptfenster schreiben (InvalidateRect und dann in WM_PAINT zeichnen)</p>
</blockquote>
<p>also so:</p>
<pre><code class="language-cpp">SetTimer(hwnd,             // handle to main window 
    IDT_TIMER1,            // timer identifier 
    1000,                  // 1-second interval 
    (TIMERPROC) NULL);     // no timer callback
</code></pre>
<p>settimer am besten in die hauptnachrichtenschleife rein tun?<br />
was ist timer callback??? wie kann ich dem timer sagn: ruf ein unterprogramm zb.: void kb_sec_berechnen() aus?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582781</guid><dc:creator><![CDATA[coder1]]></dc:creator><pubDate>Sat, 14 Aug 2004 17:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Sun, 15 Aug 2004 09:58:51 GMT]]></title><description><![CDATA[<p>Entweder du gibts diese Funktion als timer callback an, oder du machst das Ganze einfach in WM_TIMER. Den Timer erzeugst du am besten in WM_CREATE - würde ich mal sagen <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/583063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583063</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 15 Aug 2004 09:58:51 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Mon, 16 Aug 2004 05:56:24 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Entweder du gibts diese Funktion als timer callback an, oder du machst das Ganze einfach in WM_TIMER. Den Timer erzeugst du am besten in WM_CREATE - würde ich mal sagen <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>
</blockquote>
<pre><code class="language-cpp">SetTimer(hwnd,             // handle to main window 
    IDT_TIMER1,            // timer identifier 
    1000,                  // 1-second interval 
    (TIMERPROC) TimerProcedure);     // no timer callback
</code></pre>
<p>der timer läuft schon, mit so ner Callback Funktion!;-) was muss ich tun damit ihn das WM_Time verwenden kann? kann man den timer irgendwie starten bzw stoppen? cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583457</guid><dc:creator><![CDATA[coder1]]></dc:creator><pubDate>Mon, 16 Aug 2004 05:56:24 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Mon, 16 Aug 2004 07:07:37 GMT]]></title><description><![CDATA[<p>coder1 schrieb:</p>
<blockquote>
<p>was muss ich tun damit ihn das WM_Time verwenden kann?</p>
</blockquote>
<p>Also entweder du bearbeitest WM_TIMER, oder du machst das Ganze eben über die Calback-Funktion.</p>
<p>coder1 schrieb:</p>
<blockquote>
<p>kann man den timer irgendwie starten bzw stoppen?</p>
</blockquote>
<p>Zum Stoppen musst du einfach <a href="http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/timers/timerreference/timerfunctions/killtimer.asp" rel="nofollow">KillTimer</a> mit dem Fensterhandle und der ID von SerTimer aufrufen. <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="🙂"
    /><br />
Zum erneuten Starten, dann einfach wieder SetTimer <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/583478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583478</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 16 Aug 2004 07:07:37 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Mon, 16 Aug 2004 08:08:57 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Also entweder du bearbeitest WM_TIMER, oder du machst das Ganze eben über die Calback-Funktion.</p>
</blockquote>
<p>ich setz einfach den 4ten Paramenter (TIMERPROC) NULL<br />
u erstelle WM_TIMER in der Hauptnachrichtenschleife?</p>
<p>thx+cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583509</guid><dc:creator><![CDATA[coder1]]></dc:creator><pubDate>Mon, 16 Aug 2004 08:08:57 GMT</pubDate></item><item><title><![CDATA[Reply to übertragungsgeschwindigkeit ausrechnen... on Mon, 16 Aug 2004 09:15:59 GMT]]></title><description><![CDATA[<p>coder1 schrieb:</p>
<blockquote>
<p>flenders schrieb:</p>
<blockquote>
<p>Also entweder du bearbeitest WM_TIMER, oder du machst das Ganze eben über die Calback-Funktion.</p>
</blockquote>
<p>ich setz einfach den 4ten Paramenter (TIMERPROC) NULL<br />
u erstelle WM_TIMER in der Hauptnachrichtenschleife?</p>
</blockquote>
<p>Ja.</p>
<p>Wenn du das einfach ausprobiert hättest, hätte sich deine Frage erübrigt. <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 />
wmfrs</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583551</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Mon, 16 Aug 2004 09:15:59 GMT</pubDate></item></channel></rss>