<?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[Select() MultiSocket]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>bräuchte mal eure Hilfe bei der Umsetzung meines kleinen Servers.<br />
Ich verstehe nicht so recht wie select() funktioniert.</p>
<p>Als Grundlage habe ich einen Thread am laufen, der jeden Socket auslesen soll und und gegeben Falls schließen. Die Sockets werden in einem Vector gespeichert.</p>
<pre><code class="language-cpp">vector&lt;SOCKET&gt; mySockets
</code></pre>
<p>Dieser Vector wird mit neuen Clients aus einem anderen Thread aus vollgestopft.</p>
<p>Wie baue ich nun die Funktion auf damit ich alle Sockets auslesen kann ?</p>
<pre><code class="language-cpp">void readSockets ( ){

  fd_set fds;
  size_t max = mySockets.size(); // anzahl der verbundenen Sockets
  FD_ZERO ( &amp;fds );  

  FD_SET ( max, &amp;fds );

  while ( 1 ) {

    max = mySockets.size();
    FD_SET ( max, &amp;fds );
    select ( max + 1, &amp;fds, NULL, NULL, NULL ); 

    for ( int cur = 0; cur &lt; max; cur++) {
       /// wie gehts nun weiter ?
    }
  }
}
</code></pre>
<p>Könnte mir da einer bitte weiter helfen. Ich verstehe nun nicht was es mit dem FD_ISSET auf sich hat.</p>
<p>snux</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303635/select-multisocket</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 06:31:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303635.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 May 2012 19:44:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Select() MultiSocket on Fri, 18 May 2012 19:44:37 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>bräuchte mal eure Hilfe bei der Umsetzung meines kleinen Servers.<br />
Ich verstehe nicht so recht wie select() funktioniert.</p>
<p>Als Grundlage habe ich einen Thread am laufen, der jeden Socket auslesen soll und und gegeben Falls schließen. Die Sockets werden in einem Vector gespeichert.</p>
<pre><code class="language-cpp">vector&lt;SOCKET&gt; mySockets
</code></pre>
<p>Dieser Vector wird mit neuen Clients aus einem anderen Thread aus vollgestopft.</p>
<p>Wie baue ich nun die Funktion auf damit ich alle Sockets auslesen kann ?</p>
<pre><code class="language-cpp">void readSockets ( ){

  fd_set fds;
  size_t max = mySockets.size(); // anzahl der verbundenen Sockets
  FD_ZERO ( &amp;fds );  

  FD_SET ( max, &amp;fds );

  while ( 1 ) {

    max = mySockets.size();
    FD_SET ( max, &amp;fds );
    select ( max + 1, &amp;fds, NULL, NULL, NULL ); 

    for ( int cur = 0; cur &lt; max; cur++) {
       /// wie gehts nun weiter ?
    }
  }
}
</code></pre>
<p>Könnte mir da einer bitte weiter helfen. Ich verstehe nun nicht was es mit dem FD_ISSET auf sich hat.</p>
<p>snux</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212936</guid><dc:creator><![CDATA[snux]]></dc:creator><pubDate>Fri, 18 May 2012 19:44:37 GMT</pubDate></item><item><title><![CDATA[Reply to Select() MultiSocket on Tue, 22 May 2012 07:44:36 GMT]]></title><description><![CDATA[<p>Ein bisschen spät vielleicht; aber mir hat dieses <a href="http://www.zotteljedi.de/socket-tipps/" rel="nofollow">http://www.zotteljedi.de/socket-tipps/</a> und <a href="http://www.c-worker.ch/tuts.php" rel="nofollow">http://www.c-worker.ch/tuts.php</a> geholfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214031</guid><dc:creator><![CDATA[Helmut.Jakoby]]></dc:creator><pubDate>Tue, 22 May 2012 07:44:36 GMT</pubDate></item><item><title><![CDATA[Reply to Select() MultiSocket on Tue, 22 May 2012 07:55:35 GMT]]></title><description><![CDATA[<p>snux schrieb:</p>
<blockquote>
<p>Könnte mir da einer bitte weiter helfen. Ich verstehe nun nicht was es mit dem FD_ISSET auf sich hat.</p>
</blockquote>
<p>Nun, du legst ein fd_set an, stopfst deine fds (Sockets) rein, rufst select auf, und das lässt nur die Sockets drin, auf denen du die entsprechend angegebenen Operationen ausführen kannst. Mit FD_ISSET prüfst du dann, ob ein bestimmter Socket noch im Set ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214034</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 22 May 2012 07:55:35 GMT</pubDate></item></channel></rss>