<?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[Winsock - Dateien aufteilen und versenden]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche bereits seit einiger Zeit, eine Art FTP-Server zu programmieren<br />
-doch ich weis leider net, wie ich die zu versendenen Dateien am besten<br />
mit der &quot;Stück-für-Stück&quot; Methode versenden kann.<br />
Kennt ihr da vielleicht ein passendes Tutorial oder ein paar Codeschnipsel?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/101112/winsock-dateien-aufteilen-und-versenden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 02:42:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/101112.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Feb 2005 14:45:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Sun, 13 Feb 2005 14:45:43 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche bereits seit einiger Zeit, eine Art FTP-Server zu programmieren<br />
-doch ich weis leider net, wie ich die zu versendenen Dateien am besten<br />
mit der &quot;Stück-für-Stück&quot; Methode versenden kann.<br />
Kennt ihr da vielleicht ein passendes Tutorial oder ein paar Codeschnipsel?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/722240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/722240</guid><dc:creator><![CDATA[Pedda]]></dc:creator><pubDate>Sun, 13 Feb 2005 14:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Sun, 13 Feb 2005 14:47:30 GMT]]></title><description><![CDATA[<p>Stell deine Frage vernünftig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/722241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/722241</guid><dc:creator><![CDATA[argh]]></dc:creator><pubDate>Sun, 13 Feb 2005 14:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Sun, 13 Feb 2005 18:29:40 GMT]]></title><description><![CDATA[<p>Ok Ok.. <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 />
Ich meine die Methode, wo die zu versendene Datei in Stücken<br />
(zum Beispiel *512 Bytes) gelesen und zum Server gesendet wird.</p>
<p>Habe bereits folgenden Ansatz zum Lesen der Datei (könnt ihr mir kurz nen feedback geben, ob ich das problemlos verwenden kann?):</p>
<pre><code class="language-cpp">HANDLE hFile = CreateFile(&quot;C:\\test.txt&quot;, GENERIC_READ, FILE_SHARE_READ,
	NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

	if (hFile == INVALID_HANDLE_VALUE)
	{
		printf(&quot;Datei konnte nicht geöffnet werden!\n&quot;);
		return 0;
	}

	DWORD dwBytesTotalRead = 0;
	DWORD dwBytesRead = 0;
	DWORD dwFileSize = GetFileSize(hFile, NULL);
	char *cBuf = new char[512 + 1];

	while (dwBytesTotalRead &lt; dwFileSize)
	{
		if (dwFileSize-dwBytesTotalRead &gt;= 512)
		{
			ReadFile(hFile, cBuf, 512, &amp;dwBytesRead, 0);
			cBuf[512]        = '\0';
			dwBytesTotalRead = dwBytesTotalRead + dwBytesRead;

			//cBuf senden
		}

		else
		{
			ReadFile(hFile, cBuf, (dwFileSize-dwBytesTotalRead), &amp;dwBytesRead, 0);
			cBuf[dwFileSize-dwBytesTotalRead]	= '\0';
			dwBytesTotalRead = dwBytesTotalRead + dwBytesRead;

			//cBuf senden
		}

		if(dwBytesTotalRead == dwFileSize)
		{MessageBox(0,0,0,0);}
	}

	CloseHandle(hFile);
	delete[] cBuf;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/722414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/722414</guid><dc:creator><![CDATA[Pedda]]></dc:creator><pubDate>Sun, 13 Feb 2005 18:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Mon, 14 Feb 2005 13:45:39 GMT]]></title><description><![CDATA[<p>Ach Mensch...<br />
ich will doch nur ein Feedback, ob ich den Code im letzen Posting für das Lesen<br />
einer Datei verwenden kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> - funktioniert das zum Beispiel auch bei Dateien<br />
im Binary - Format oder können mit</p>
<pre><code class="language-cpp">ReadFile(...)
</code></pre>
<p>nur Dateien im Ascii-Format gelesen werden?</p>
<p>Freue mich über jede Antwort <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>Um's nochmal zu verdeutlichen: Ich möchte mithilfe von Sockets und einer<br />
TCP-Verbindung eine Datei von einem Clienten zu einem Server übertragen.<br />
Da die Datei aber mehr als 3MB groß sein wird, kann ich nicht einfach die<br />
komplette Datei mit send(...) senden und auf dem Server empfangen (das würde 1.<br />
zu lange dauern und man möchte 2. ja auch mal wissen, wie lange der Transfer<br />
wohl noch dauert und wieviele Bytes bisher gesendet wurden.)</p>
<p>Darum hab ich mir mal überlegt, die Datei in einzelnen &quot;Paketen&quot;<br />
(zum Beispiel *512 Bytes) zu versenden. Erst, wenn eine Empfangsbestätigung<br />
der 512 Bytes vom Server beim Clienten angekommen ist, werden die nächsten<br />
512 Bytes gesendet und so weiter..</p>
<p>Der Code im vorigen Posting soll die entsprechende Datei Stück für Stück<br />
einlesen. Da, wo ich die Kommentare eingefügt habe, wird geprüft, ob bereits<br />
eine Empfangsbestätigung der letzten 512 Bytes vom Server vorhanden ist.<br />
Wenn ja, werden die nächsten 512 Bytes in der Dateieingelesen, versendet<br />
und so weiter..</p>
<p>Doch ich weis leider nicht, ob das auch problemlos mit Dateien im Binary-Format<br />
funktioniert (bei der Ausgabe des Buffers mit printf(...) ist mir das Programm<br />
bei einer Videodatei abgestürzt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/723014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/723014</guid><dc:creator><![CDATA[Pedda]]></dc:creator><pubDate>Mon, 14 Feb 2005 13:45:39 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Mon, 14 Feb 2005 14:22:46 GMT]]></title><description><![CDATA[<p>Pedda schrieb:</p>
<blockquote>
<p>Um's nochmal zu verdeutlichen: Ich möchte mithilfe von Sockets und einer<br />
TCP-Verbindung eine Datei von einem Clienten zu einem Server übertragen.<br />
Da die Datei aber mehr als 3MB groß sein wird, kann ich nicht einfach die<br />
komplette Datei mit send(...) senden und auf dem Server empfangen (das würde 1.<br />
zu lange dauern und man möchte 2. ja auch mal wissen, wie lange der Transfer<br />
wohl noch dauert und wieviele Bytes bisher gesendet wurden.)</p>
<p>Darum hab ich mir mal überlegt, die Datei in einzelnen &quot;Paketen&quot;<br />
(zum Beispiel *512 Bytes) zu versenden. Erst, wenn eine Empfangsbestätigung<br />
der 512 Bytes vom Server beim Clienten angekommen ist, werden die nächsten<br />
512 Bytes gesendet und so weiter..</p>
</blockquote>
<p>tcp ist aus benutzersicht ein datenstrom. man braucht nichts in pakete zu zerstückeln und keine selbstgemachten 'ack's. du kannst einfach daten mit readfile() in einen puffer holen und dann alles was ankam mit send() abschicken (einfacher puffer-transfer vom readfile fifo in den socket-fifo). die grösse des puffers spielt dabei fast keine rolle (anzahl der schleifendurchläufe kann man vernachlässigen). kann 100 bytes oder 100kb sein, ist egal. tcp und readfile regeln alles selber.<br />
äääh... wenn du unbedingt pakete mit bestätigung machen willst, dann nimm udp. aber solche synchronen ping-pong protokolle sind echt lahm.<br />
btw: noch besser ist natürlich das: <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>
]]></description><link>https://www.c-plusplus.net/forum/post/723046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/723046</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 14 Feb 2005 14:22:46 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Mon, 14 Feb 2005 14:49:03 GMT]]></title><description><![CDATA[<p>Der Code ist irgendwie verwirrend. Versuch den mal neu zu schreiben. Man kann das auf jeden Fall so schreiben das man nur an einer Stelle ReadFile aufrufen muss. Und cBuf musst du doch nicht dynamisch anlegen. Das hat keinen Sinn, wenn du dann die Größe fest codierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/723063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/723063</guid><dc:creator><![CDATA[tipp]]></dc:creator><pubDate>Mon, 14 Feb 2005 14:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Mon, 14 Feb 2005 15:53:29 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>tcp ist aus benutzersicht ein datenstrom. man braucht nichts in pakete zu zerstückeln und keine selbstgemachten 'ack's. du kannst einfach daten mit readfile() in einen puffer holen und dann alles was ankam mit send() abschicken (einfacher puffer-transfer vom readfile fifo in den socket-fifo). die grösse des puffers spielt dabei fast keine rolle (anzahl der schleifendurchläufe kann man vernachlässigen). kann 100 bytes oder 100kb sein, ist egal. tcp und readfile regeln alles selber.<br />
äääh... wenn du unbedingt pakete mit bestätigung machen willst, dann nimm udp. aber solche synchronen ping-pong protokolle sind echt lahm.<br />
btw: noch besser ist natürlich das: <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>
</blockquote>
<p>Verstehe ich leider nicht so ganz - ich könnte also praktisch per ReadFile die<br />
komplette Datei einlesen und den x byte großen Buffer mit send(...) versenden?</p>
<p>Wie sieht'n das denn dann beim Server aus - wie komme ich denn da dann an die<br />
Anzahl der empfangenen Bytes und an die Restdauer des Dateitransfers<br />
(mein Ziel ist es ja, eine beliebig große datei zu übertragen; auf dem Server<br />
soll aber zwischendurch angezeigt werden, wie viele Bytes schon insgesamt<br />
übertragen wurden)?</p>
<p>TransmitFile() könnte ich natürlich auch verwenden, doch ich finde in der msdn<br />
irgendwie keine Informationen dazu, wie ich die Datei empfangen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/723134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/723134</guid><dc:creator><![CDATA[Pedda]]></dc:creator><pubDate>Mon, 14 Feb 2005 15:53:29 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Mon, 14 Feb 2005 20:57:50 GMT]]></title><description><![CDATA[<p>Pedda schrieb:</p>
<blockquote>
<p>Verstehe ich leider nicht so ganz - ich könnte also praktisch per ReadFile die<br />
komplette Datei einlesen und den x byte großen Buffer mit send(...) versenden?</p>
</blockquote>
<p>sinngemäss ungefähr so...</p>
<pre><code>...
char buffer[0x4000];
...
while (ReadFile (...., buffer, sizeof(buffer), &amp;bytes_read, ....))
{
   // fertig?
   if (bytes_read == 0)
      break;
   // senden...
   while (bytes_read)
   {
      int bytes_sent = send (socket, buffer, bytes_read, ....); 
      if (bytes_sent == SOCKET_ERROR)
      {
         // fehler beim senden, verbindung weg usw.
         ...
      }
      // falls socket input buffer voll nochmal den rest senden
      bytes_read -= bytes_sent; 
   }
}
...
</code></pre>
<p>Pedda schrieb:</p>
<blockquote>
<p>Wie sieht'n das denn dann beim Server aus - wie komme ich denn da dann an die<br />
Anzahl der empfangenen Bytes und an die Restdauer des Dateitransfers</p>
</blockquote>
<p>der weiss leider nicht wieviele daten kommen. musste ihm mitteilen z.b. indem du diese information zuerst sendest</p>
<p>Pedda schrieb:</p>
<blockquote>
<p>(mein Ziel ist es ja, eine beliebig große datei zu übertragen; auf dem Server<br />
soll aber zwischendurch angezeigt werden, wie viele Bytes schon insgesamt<br />
übertragen wurden)?</p>
</blockquote>
<p>siehe oben. der code ist zwar nicht lauffähig aber zeigt ungefähr wie's gehen kann</p>
<p>Pedda schrieb:</p>
<blockquote>
<p>TransmitFile() könnte ich natürlich auch verwenden, doch ich finde in der msdn<br />
irgendwie keine Informationen dazu, wie ich die Datei empfangen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>recv(), WSARecv(), was du willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/723428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/723428</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 14 Feb 2005 20:57:50 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Wed, 16 Feb 2005 15:23:05 GMT]]></title><description><![CDATA[<p>Hey net!<br />
Vielen Dank für deine Antworten!<br />
Habe in nem französischen Programmiererforum genau das zu TransmitFile gefunden,<br />
was ich suchte ...:</p>
<pre><code class="language-cpp">/************************************
 *   Programme principal : main     * - Client
 ************************************/

int main(int argc, char **argv[])
{
    SOCKET sock;
    struct sockaddr_in sin;

    int ret;
    char buffer[1024];
   char espace[] = &quot; &quot;;

   char *name = &quot;envois.txt&quot;;

    /* Initialise Winsock */
    InitWinsock();

    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);   /* Appel de la fonction socket */
    if (sock != INVALID_SOCKET)   /* Controle d'erreurs */
      fprintf(stdout, &quot;[*] Socket cree avec succes.\n&quot;);
    else
   {
      fprintf(stderr,&quot;Erreur lors de la creation du socket, Code d'erreur : %d\n&quot;,WSAGetLastError());
      return (-1);
    }

    memset(&amp;sin, 0, sizeof(struct sockaddr_in));

   cout &lt;&lt; &quot;IP server : &quot;;
   cin.getline(buffer,100);
    sin.sin_addr.s_addr = inet_addr(buffer);   /* inet_addr(ip_du_serveur); */
    sin.sin_family = AF_INET;
    sin.sin_port = htons(4148);   /* htons(port_du_serveur); */

    connect(sock, (SOCKADDR *) &amp; sin, sizeof(struct sockaddr_in));   /* Connexion */
    if (sock != SOCKET_ERROR)   /* Controle d'erreurs */
      fprintf(stdout, &quot;[*] Connexion effectuee avec succes.\n&quot;);
    else
   {
      fprintf(stderr,&quot;Erreur lors de la connection, Code d'erreur : %d\n&quot;,WSAGetLastError());
      return (-1);
    }

   HANDLE hFile = CreateFile(name, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
      if( (hFile == 0) || (hFile == INVALID_HANDLE_VALUE) )
      cout &lt;&lt; &quot;Error &quot; &lt;&lt; hFile &lt;&lt; &quot;\n&quot;;
      else
      cout &lt;&lt; &quot;Success &quot; &lt;&lt; hFile &lt;&lt; &quot;\n&quot;;

   long size = GetFileSize(hFile, NULL);   
   long total = 0;
   long n = 0;
   long taille = 1024;

   ifstream entree(name, ios::binary);

   memset(buffer, 0, 1024 * sizeof(char));
   *((long*)&amp;buffer) = size;

    send(sock,buffer,sizeof(long),0);
   memset(buffer, 0, 1024 * sizeof(char));

    send(sock,name,sizeof(buffer),0);
   cout &lt;&lt; name &lt;&lt; endl;

   ret = recv(sock, buffer, 2, 0);

   char flag[2];
   sprintf(flag,&quot;%s&quot;, &quot;ok&quot;);

   if(flag != buffer)
   {
      if (! (TransmitFile(sock,hFile,size,0,NULL,NULL,TF_DISCONNECT | TF_REUSE_SOCKET)))
         cout &lt;&lt; &quot;Erreur Send_file TransmitFile : &quot; &lt;&lt; WSAGetLastError() &lt;&lt; endl; 
      else
      {
         cout &lt;&lt; &quot;Envois ok&quot; &lt;&lt; endl;
      }
   }

    closesocket(sock);      /* Ferme le socket */
   system(&quot;PAUSE&quot;);
    return (0);
}
</code></pre>
<pre><code class="language-cpp">/************************************
 *    Traitement des transferts     * - Server
 ************************************/

void traite_connexion(SOCKET socket_client)
{
    int ret;
    char buffer[17520];
   char *buff = NULL;   
   long total;   

   buff = (char *) malloc(256 * sizeof(char *));

    ret=recv(socket_client,buff,sizeof(buff),0);
    buff[ret]='\0';
    total = *((long*)buff);
   long size = total;
   memset(buffer, 0, 17520 * sizeof(char));

   ret=recv(socket_client,buffer,sizeof(buffer),0);
   char *name = buffer;
   cout &lt;&lt; name &lt;&lt; buffer;
   ofstream fichier( name, ios::binary);
   memset(buffer, 0, 17520 * sizeof(char));

   char flag[2];
   sprintf(flag,&quot;%s&quot;, &quot;ok&quot;);
   cout &lt;&lt; flag &lt;&lt; endl;
   ret = send(socket_client, flag, sizeof(flag), 0);

   int i = 0;

   while(total&gt;17520)
    {
      ret = recv(socket_client,buffer, 17520, 0);
        fichier.write(buffer,ret);
      i++;
      cout &lt;&lt; &quot;Ecriture fichier... &quot; &lt;&lt; i &lt;&lt; &quot; Retour... &quot; &lt;&lt; ret &lt;&lt; endl;
        total -= ret;
    }
    recv(socket_client, buffer, total, 0);
    fichier.write(buffer, total);
   cout &lt;&lt; &quot;Ecriture fin de fichier...&quot; &lt;&lt; total &lt;&lt; endl;
   fichier.close();
    closesocket(socket_client);
}
</code></pre>
<p>(<a href="http://www.developpez.net/forums/viewtopic.php?t=291970" rel="nofollow">http://www.developpez.net/forums/viewtopic.php?t=291970</a>)</p>
<p>Werde aber wahrscheinlich erst die Informationen der Datei (Grösse, Name, etc.)<br />
zum Server senden, kurz eine Antwort abwarten und die Datei dann übertragen.<br />
(siehe while-Schleife).</p>
<p>Nun hätte' ich aber da noch ne Frage:<br />
Wenn ich die Teile der Datei alle mit recv(...) in einer while Schleife<br />
empfange, könnte es doch passieren, dass sich die Daten noch in dem übertragenen<br />
Socket-Stream befinden und erneut in die Datei geschrieben werden, oder werden<br />
die automatisch nach dem Empfang gelöscht?</p>
<p>(Beispiel: Client -&gt; -&gt; Empfang -&gt; Server)</p>
<p>Nochmals vielen Dank!<br />
<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/724913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/724913</guid><dc:creator><![CDATA[Pedda]]></dc:creator><pubDate>Wed, 16 Feb 2005 15:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Wed, 16 Feb 2005 22:09:25 GMT]]></title><description><![CDATA[<p>Pedda schrieb:</p>
<blockquote>
<p>Wenn ich die Teile der Datei alle mit recv(...) in einer while Schleife<br />
empfange, könnte es doch passieren, dass sich die Daten noch in dem übertragenen<br />
Socket-Stream befinden und erneut in die Datei geschrieben werden, oder werden<br />
die automatisch nach dem Empfang gelöscht?</p>
</blockquote>
<p>der empfangspuffer eines sockets wird von der einen seite vom protokollstack gefüllt und auf der anderen seite holt sich die anwendung die daten raus. alles was (z.b. mit recv()) aus dem puffer geholt wurde ist da nicht mehr drin. wenn nichts mehr drin ist, gibt recv() 0 zurück. wenn man recv() lange nicht aufruft, wird die verbindung angehalten d.h. die gegenstelle sendet auch nicht mehr, bis wieder platz im puffer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/725252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725252</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 16 Feb 2005 22:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to Winsock - Dateien aufteilen und versenden on Thu, 17 Feb 2005 13:46:29 GMT]]></title><description><![CDATA[<p>Ok - dann bedanke ich mich hiermit nochmal vielmals für alle Antworten <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>Achso: Es ist doch richtig, dass man für die Benutzung der Winsock2 - Funktionen<br />
nur die ws2_32.lib und die Mswsock.lib linken muss; die dazu gehörigen<br />
Header-Dateien werden doch schon in der windows.h eingebunden, oder nicht?</p>
<p>(Wenn ich versuche, die mswsock.h zu inkludieren, wird mir mitgeteilt, dass<br />
_TRANSMIT_FILE_BUFFER (oder so) schon definiert wurde - wenn ich die rauslasse,<br />
windows.h inkludiere und ws2_32.lib und Mswsock.lib linke, funktioniert allet<br />
prima:)</p>
<p>thx!<br />
-Pedda <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>PS: Klasse Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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/725638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/725638</guid><dc:creator><![CDATA[Pedda]]></dc:creator><pubDate>Thu, 17 Feb 2005 13:46:29 GMT</pubDate></item></channel></rss>