<?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 im Netzwerk versenden auch ohne Thread möglich?]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich folgendens Problem:</p>
<p>Ein Server wird über eine COM-Schnittstelle aufgerufen. Dieser erzeugt<br />
eine Datei und diese möchte ich an den aufrufenden Client zurückschicken.</p>
<p>Jetzt hab ich folgenden Code gefunden:</p>
<pre><code class="language-cpp">#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:\\testdatei.txt&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>Ist es nicht so, dass <strong>sockSrvr.Listen();</strong> auf eine Antwort vom Client wartet?</p>
<p>Client ruft die Funktion pComObject-&gt;getData() auf, Server startet den Socket,<br />
aber da er wartet wird der Funktionsaufruf doch gar nicht beendet, oder? Somit<br />
ist der Client ja dann nicht in der Lage auf dieses Socket zuzugreifen, da er<br />
immer noch im Funktionsaufruf festhängt.</p>
<p>Also muss ein Thread angelegt werden? <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="😕"
    /><br />
Muss das sein? Geht das nicht auch anders?</p>
<p>Falls ich hier einen Denkfehler habe oder es eine elegantere bzw. schnellere<br />
Methode gibt, dann könnt ihr mich gerne berichtigen.</p>
<p>Die Datei die erstellt wird, hat eine Größe von ca. 50KB - 2MB und somit ist<br />
Möglichkeit, diese über COM zurückzusenden, zu langsam (und ich weiß nicht<br />
wie das geht &gt; 64KB).</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/53722/datei-im-netzwerk-versenden-auch-ohne-thread-möglich</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 19:33:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/53722.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Oct 2003 14:06:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei im Netzwerk versenden auch ohne Thread möglich? on Fri, 31 Oct 2003 14:06:32 GMT]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich folgendens Problem:</p>
<p>Ein Server wird über eine COM-Schnittstelle aufgerufen. Dieser erzeugt<br />
eine Datei und diese möchte ich an den aufrufenden Client zurückschicken.</p>
<p>Jetzt hab ich folgenden Code gefunden:</p>
<pre><code class="language-cpp">#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:\\testdatei.txt&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>Ist es nicht so, dass <strong>sockSrvr.Listen();</strong> auf eine Antwort vom Client wartet?</p>
<p>Client ruft die Funktion pComObject-&gt;getData() auf, Server startet den Socket,<br />
aber da er wartet wird der Funktionsaufruf doch gar nicht beendet, oder? Somit<br />
ist der Client ja dann nicht in der Lage auf dieses Socket zuzugreifen, da er<br />
immer noch im Funktionsaufruf festhängt.</p>
<p>Also muss ein Thread angelegt werden? <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="😕"
    /><br />
Muss das sein? Geht das nicht auch anders?</p>
<p>Falls ich hier einen Denkfehler habe oder es eine elegantere bzw. schnellere<br />
Methode gibt, dann könnt ihr mich gerne berichtigen.</p>
<p>Die Datei die erstellt wird, hat eine Größe von ca. 50KB - 2MB und somit ist<br />
Möglichkeit, diese über COM zurückzusenden, zu langsam (und ich weiß nicht<br />
wie das geht &gt; 64KB).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/383627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/383627</guid><dc:creator><![CDATA[TaCCo]]></dc:creator><pubDate>Fri, 31 Oct 2003 14:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Datei im Netzwerk versenden auch ohne Thread möglich? on Fri, 31 Oct 2003 14:10:23 GMT]]></title><description><![CDATA[<p>mit standard c++ kann ich dir leider nicht helfen,<br />
und viele hier in dem forum, die sich damit besser auskennen werden im<br />
standard c++ forum einfach nicht nachsehen.<br />
darum, einmal bitte<br />
<a href="http://forum.c-plusplus.net/viewtopic.php?t=39405" rel="nofollow">durchlesen</a>, und<br />
dann denk noch mal drüber nach, in welches forum dein beitrag am besten passt.<br />
dahin wirst du dann verschoben werden <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="🙂"
    /> bis dahin: geduld</p>
]]></description><link>https://www.c-plusplus.net/forum/post/383632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/383632</guid><dc:creator><![CDATA[davie]]></dc:creator><pubDate>Fri, 31 Oct 2003 14:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Datei im Netzwerk versenden auch ohne Thread möglich? on Fri, 31 Oct 2003 14:14:07 GMT]]></title><description><![CDATA[<p>Ähh <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="🙄"
    /> ja danke...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/383641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/383641</guid><dc:creator><![CDATA[TaCCo]]></dc:creator><pubDate>Fri, 31 Oct 2003 14:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to Datei im Netzwerk versenden auch ohne Thread möglich? on Fri, 31 Oct 2003 22:08:46 GMT]]></title><description><![CDATA[<p>listen() bedeutet nur, daß der Server auf weitere Connections wartet. Nur dann funktioniert der (hier wohl blockierende) Aufruf von accept(), der die Verbindung annimmt.<br />
(Blockierend) auf eine Anfrage des Clients würde der Server durch den Aufruf von recv() warten.</p>
<p>Ich hab hier stellvertretend API-Funktionen genannt, da ich die MFC-Implementation für Sockets nicht kenne - allerdings ist das hier sowieso im falschen Forum. <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/384004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/384004</guid><dc:creator><![CDATA[Cocaine]]></dc:creator><pubDate>Fri, 31 Oct 2003 22:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Datei im Netzwerk versenden auch ohne Thread möglich? on Mon, 10 Nov 2003 16:21:39 GMT]]></title><description><![CDATA[<p>Hab jetzt ne gute Möglichkeit gefunden...</p>
<p>ich verschick die Datei jetzt per FTP (InternetOpen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/391022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391022</guid><dc:creator><![CDATA[TaCCo]]></dc:creator><pubDate>Mon, 10 Nov 2003 16:21:39 GMT</pubDate></item><item><title><![CDATA[Reply to Datei im Netzwerk versenden auch ohne Thread möglich? on Mon, 10 Nov 2003 20:00:40 GMT]]></title><description><![CDATA[<p>Stichwort<br />
CAsyncSockets</p>
]]></description><link>https://www.c-plusplus.net/forum/post/391236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391236</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Mon, 10 Nov 2003 20:00:40 GMT</pubDate></item></channel></rss>