<?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[WSASend nach TransmitFile umstellen]]></title><description><![CDATA[<p>ich würde gern ne Funktion von nem Programm umstellen</p>
<p>und zwa möchte ich anstatt WSASend TransmitFile und TRANSMIT_FILE_BUFFERS</p>
<p>hier die jeweiligen MSDN einträge</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmit_file_buffers_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmit_file_buffers_2.asp</a><br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmitfile_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmitfile_2.asp</a></p>
<p>aber irgendwie schein ich dafür zu blöd zu sein hab im netz auch leider nichts dazu gefunden was mir weiterhilft</p>
<p>dies ist meine funktion wie sie jetzt ist</p>
<pre><code class="language-cpp">int					result;
	string				szRequest;
	string				szResponse;
	WSABUF				Buffer;
	DWORD				NumberOfBytesSent;
	DWORD				dwBytesSent;

				if(!pGenericServer-&gt;ParseRequest(szRequest, szResponse))
				{
					pGenericServer-&gt;CleanupThread(Event, s, pNewConn, GetCurrentThreadId());
					return THREADEXIT_SUCCESS;
				}
				//
				// Sende Response zum Client
				//
				NumberOfBytesSent = 0;
				dwBytesSent = 0;
				do
				{
					Buffer.len = (szResponse.size() - dwBytesSent) &gt;= SENDBLOCK ? SENDBLOCK : szResponse.size() - dwBytesSent;	
					Buffer.buf = (char*)((DWORD)szResponse.c_str() + dwBytesSent);

					result = WSASend(
						s,                                                
						&amp;Buffer,                                     
						1,                                    
						&amp;NumberOfBytesSent,
						0,                                          
						0,                           
						NULL);

					if(SOCKET_ERROR != result)
						dwBytesSent += NumberOfBytesSent;
				}
				while((dwBytesSent &lt; szResponse.size()) &amp;&amp; SOCKET_ERROR != result);
</code></pre>
<p>nachdem ParseRequest(szRequest, szResponse) ausgeführt würde enthält szRequest den Dateinamen z.b. C:\Beispiel\Text.txt</p>
<p>szResponse enthält nen Header und darauf folgt der inhalt der Datei die in szRequest steht</p>
<p>mein Problem dabei ist das immer die Komplette Datei in den Arbeitspeicher geladen wird und der PC auf dem dieses Programm laufen soll verfügt eben nicht über sehr viel</p>
<p>daher möchte ich eben mit Transmit file arbeiten daher mein header soll dem Transmit file Buffers übergeben werden und danach mit transmitfile die datei gesendet werden. aber ich habe keinen Blassen schimmer wie ich das machen soll</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/131063/wsasend-nach-transmitfile-umstellen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 16:50:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131063.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Dec 2005 15:59:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WSASend nach TransmitFile umstellen on Fri, 30 Dec 2005 15:59:18 GMT]]></title><description><![CDATA[<p>ich würde gern ne Funktion von nem Programm umstellen</p>
<p>und zwa möchte ich anstatt WSASend TransmitFile und TRANSMIT_FILE_BUFFERS</p>
<p>hier die jeweiligen MSDN einträge</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmit_file_buffers_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmit_file_buffers_2.asp</a><br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmitfile_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transmitfile_2.asp</a></p>
<p>aber irgendwie schein ich dafür zu blöd zu sein hab im netz auch leider nichts dazu gefunden was mir weiterhilft</p>
<p>dies ist meine funktion wie sie jetzt ist</p>
<pre><code class="language-cpp">int					result;
	string				szRequest;
	string				szResponse;
	WSABUF				Buffer;
	DWORD				NumberOfBytesSent;
	DWORD				dwBytesSent;

				if(!pGenericServer-&gt;ParseRequest(szRequest, szResponse))
				{
					pGenericServer-&gt;CleanupThread(Event, s, pNewConn, GetCurrentThreadId());
					return THREADEXIT_SUCCESS;
				}
				//
				// Sende Response zum Client
				//
				NumberOfBytesSent = 0;
				dwBytesSent = 0;
				do
				{
					Buffer.len = (szResponse.size() - dwBytesSent) &gt;= SENDBLOCK ? SENDBLOCK : szResponse.size() - dwBytesSent;	
					Buffer.buf = (char*)((DWORD)szResponse.c_str() + dwBytesSent);

					result = WSASend(
						s,                                                
						&amp;Buffer,                                     
						1,                                    
						&amp;NumberOfBytesSent,
						0,                                          
						0,                           
						NULL);

					if(SOCKET_ERROR != result)
						dwBytesSent += NumberOfBytesSent;
				}
				while((dwBytesSent &lt; szResponse.size()) &amp;&amp; SOCKET_ERROR != result);
</code></pre>
<p>nachdem ParseRequest(szRequest, szResponse) ausgeführt würde enthält szRequest den Dateinamen z.b. C:\Beispiel\Text.txt</p>
<p>szResponse enthält nen Header und darauf folgt der inhalt der Datei die in szRequest steht</p>
<p>mein Problem dabei ist das immer die Komplette Datei in den Arbeitspeicher geladen wird und der PC auf dem dieses Programm laufen soll verfügt eben nicht über sehr viel</p>
<p>daher möchte ich eben mit Transmit file arbeiten daher mein header soll dem Transmit file Buffers übergeben werden und danach mit transmitfile die datei gesendet werden. aber ich habe keinen Blassen schimmer wie ich das machen soll</p>
]]></description><link>https://www.c-plusplus.net/forum/post/952896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/952896</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Fri, 30 Dec 2005 15:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to WSASend nach TransmitFile umstellen on Fri, 30 Dec 2005 16:29:40 GMT]]></title><description><![CDATA[<p>machs doch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/952918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/952918</guid><dc:creator><![CDATA[ich__]]></dc:creator><pubDate>Fri, 30 Dec 2005 16:29:40 GMT</pubDate></item></channel></rss>