<?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()]]></title><description><![CDATA[<p>Hi, da arbeite im Mom mit Netzwerkprogrammierung und komme um select() wohl nicht rum... die grund idee von select() klappt auch mann kann mehrere Sockets überprüfen usw... aber dennoch friert select das ganze Programm ein bis etwas ankommt... So.. Aber wie kann man es nun ein Chat Programm in der Konsole realisieren ? Es gibt ja den Tastatur Puffer...</p>
<pre><code class="language-cpp">char buffer[256];

if(kbhit())
{
   int ascii = getchar();
   sprintf(buffer, &quot;%g&quot; , ascii);
}
</code></pre>
<p>Allerdings müsste diese Abfrage andauernd passieren... Also wie kann man parallel zum select aufruf z.B. die grad gezeigte Abfrage starten ? oder ist in der Konsole überhaupt keine flexibles Chat Programm möglich ?<br />
Also ein Programm das nich nach dem Schema :<br />
Senden:<br />
Empfangen:<br />
Senden:<br />
Empfangen:<br />
arbeitet, sondern z.b. nach dem Schema:<br />
Senden:<br />
Senden:<br />
Empfangen:<br />
Senden:<br />
Empfangen:<br />
Empfangen:<br />
usw..</p>
<p>Also welche Anregungen und Tipps habt ihr für mich ?</p>
<p>mfg FoX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173841/select</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 14:41:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173841.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Feb 2007 12:16:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 12:16:56 GMT]]></title><description><![CDATA[<p>Hi, da arbeite im Mom mit Netzwerkprogrammierung und komme um select() wohl nicht rum... die grund idee von select() klappt auch mann kann mehrere Sockets überprüfen usw... aber dennoch friert select das ganze Programm ein bis etwas ankommt... So.. Aber wie kann man es nun ein Chat Programm in der Konsole realisieren ? Es gibt ja den Tastatur Puffer...</p>
<pre><code class="language-cpp">char buffer[256];

if(kbhit())
{
   int ascii = getchar();
   sprintf(buffer, &quot;%g&quot; , ascii);
}
</code></pre>
<p>Allerdings müsste diese Abfrage andauernd passieren... Also wie kann man parallel zum select aufruf z.B. die grad gezeigte Abfrage starten ? oder ist in der Konsole überhaupt keine flexibles Chat Programm möglich ?<br />
Also ein Programm das nich nach dem Schema :<br />
Senden:<br />
Empfangen:<br />
Senden:<br />
Empfangen:<br />
arbeitet, sondern z.b. nach dem Schema:<br />
Senden:<br />
Senden:<br />
Empfangen:<br />
Senden:<br />
Empfangen:<br />
Empfangen:<br />
usw..</p>
<p>Also welche Anregungen und Tipps habt ihr für mich ?</p>
<p>mfg FoX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231876</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Tue, 20 Feb 2007 12:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 12:41:42 GMT]]></title><description><![CDATA[<p>du müsstest auf jeden fall mit threads arbeiten, einer zum senden einer für die ausgabe, oder du rufst in eine while schleife auf:</p>
<pre><code class="language-cpp">string sendbuff;
while (sendbuff != string(&quot;/q&quot;)) { // austrittsbedingung
    if (select()) {
        ausgabe(); // liesst aus dem socket und schreibt message
    }
    char zeichen = getch();  // holt zeichen aus tastaturpuffer, liefert 0 wenn keins vorhanden
    if (zeichen != 0)
        if (zeichen != ENTER) { // auf enter-taste prüfen
             sendbuff.append(zeichen);
             print_zeichen_in_ausgabe(); // eine statische zeile die dein eingabefeld darstellt
        }
        else { // wenn enter-taste gedrückt dann senden
             senden();
        }
    }
}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1231901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231901</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Tue, 20 Feb 2007 12:41:42 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 12:55:52 GMT]]></title><description><![CDATA[<p>hmm ,ansich gute idee aber wie kann ich ein char zeichen in einem string speichern ? mit</p>
<pre><code class="language-cpp">char buffer;

string input.append(buffer);

funkioniert es nicht!
</code></pre>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231911</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Tue, 20 Feb 2007 12:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 13:01:45 GMT]]></title><description><![CDATA[<p>sorry mein fehler versuch es mal mit</p>
<pre><code class="language-cpp">char zeichenpuffer[2] = {0,0}; // wegen der stringterminierung durch eine null
zeichenpuffer[0] = getch(); // schreibt nur ein zeichen, die terminierende null bleib unverändert.
string t;
t.append(zeichenpuffer);
</code></pre>
<p>beim senden musst du natürlich den string löschen</p>
<p>t.clear() oder so ähnlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231914</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Tue, 20 Feb 2007 13:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 13:01:17 GMT]]></title><description><![CDATA[<p>Versuch' mal push_back().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231916</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 13:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 13:02:23 GMT]]></title><description><![CDATA[<p>oder so, ignorier einfach den unsinn den ich da verzapft hab ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231917</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Tue, 20 Feb 2007 13:02:23 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 13:03:40 GMT]]></title><description><![CDATA[<p>danke für die schnelle antwort <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>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231920</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Tue, 20 Feb 2007 13:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 13:27:06 GMT]]></title><description><![CDATA[<p>Hi, also anscheinend schaff ich das doch nich <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>
<p>eure ideen waren zwar gut aber... die send funktion benötigt ein char array...<br />
und ich hab keine ahnung wie ich den inhalt eines strings in ein chararray rein kloppen 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="😞"
    /> <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="😞"
    /> Also, wie geht das ? Oder erklärt mir was push_back sein soll...<br />
bei google kommt man da nich weit <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>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231945</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Tue, 20 Feb 2007 13:27:06 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 13:30:58 GMT]]></title><description><![CDATA[<p>push_back() hängt einen Buchstaben an das Ende des Strings an. (also das, was Ceos oben mit append() versucht hat)</p>
<p>Und um den Inhalt des Strings als char-Array zu verwenden, kannst du die Methode c_str() verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231950</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 13:30:58 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 14:48:59 GMT]]></title><description><![CDATA[<p>hmm... zwar weiß ich nun was pushback ist aber wie es benuzt weiß ich nun immer noch nich ... und sagt jetzt nich : &quot;goooogle&quot; mal .... denn da findet man zu dem Thema für Anfänger NIX geeignetes ! Also vlt ein kleiner Beispiel code oder ähnliches ? <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>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232031</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Tue, 20 Feb 2007 14:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 15:07:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char buffer;

string input;
input.push_back(buffer);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1232042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232042</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 20 Feb 2007 15:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Tue, 20 Feb 2007 21:33:42 GMT]]></title><description><![CDATA[<p>Ich würde den String sowieso eher in einem std::vector&lt;char&gt; sammeln, und dann erst am Ende mittels</p>
<pre><code class="language-cpp">std::vector&lt;char&gt; buffer;
// ...
std::string str(buffer.begin(), buffer.end());
</code></pre>
<p>in einen std::string verwandeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232324</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 20 Feb 2007 21:33:42 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Wed, 21 Feb 2007 13:36:04 GMT]]></title><description><![CDATA[<p>Warum würdest du das so machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232602</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 21 Feb 2007 13:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Wed, 21 Feb 2007 15:33:16 GMT]]></title><description><![CDATA[<p>jetzt schlag mich bitte nicht gleich, aber basiert string nicht auf nem vector ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1232690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1232690</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Wed, 21 Feb 2007 15:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Thu, 22 Feb 2007 22:07:27 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a>: weil std::vector&lt;&gt; garantiert dass push_back im Schnitt mit O(1) läuft, std::string soweit ich weiss aber nicht.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14678">@Ceos</a>: std::string KANN auf std::vector aufsetzen wenn es möchte (z.B. private von std::vector ableiten oder nen std::vector als Member haben), MUSS aber nicht. Und ist wohl in den meisten STL Implementierungen auch nicht so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233741</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 22 Feb 2007 22:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Fri, 23 Feb 2007 08:06:51 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a>: weil std::vector&lt;&gt; garantiert dass push_back im Schnitt mit O(1) läuft, std::string soweit ich weiss aber nicht.</p>
</blockquote>
<p>ich glaub, dass hier keine optimierung erforderlich ist, immerhin ist dies keine zeitkritische komponente <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>
<p>Foxx90 schrieb:</p>
<blockquote>
<p>hmm... zwar weiß ich nun was pushback ist aber wie es benuzt weiß ich nun immer noch nich ... und sagt jetzt nich : &quot;goooogle&quot; mal .... denn da findet man zu dem Thema für Anfänger NIX geeignetes ! Also vlt ein kleiner Beispiel code oder ähnliches ? <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>
</blockquote>
<p>und du glaubst, dass du für threads und sockets genug erfahrung hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233854</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 23 Feb 2007 08:06:51 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Fri, 23 Feb 2007 16:02:15 GMT]]></title><description><![CDATA[<p>JA <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>@ otze<br />
Außerdem frag ich im Forum wenn ich was nicht weiß, dafür sind sie da <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="😉"
    /><br />
Du hast bestimmt nicht anders angefangen ... Oder studierst du erst bevor du dich traust einen Thread aufzumachen ? <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234197</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Fri, 23 Feb 2007 16:02:15 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Fri, 23 Feb 2007 22:45:07 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12602">@Foxx90</a>:</p>
<p>Threads sind der Horror. Wobei das schlimmste daran ist dass fast jeder Anfänger glaubt dass ja eh alles einfach und kein Problem ist -- weil viele Dinge eben so einfach aussehen. Und auch 99.9% der Zeit funktionieren, auch wenn man was falsch macht.</p>
<p>Threads sind der Horror.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234400</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 23 Feb 2007 22:45:07 GMT</pubDate></item><item><title><![CDATA[Reply to select() on Sat, 24 Feb 2007 08:30:28 GMT]]></title><description><![CDATA[<p>vor allem wenn threads auf gemeinsame daten zugreifen oder untereinander in irgendeiner form abhänig sind Q_Q (critical sections in kombination mit schlecht konstruierten dtoren sind echt pöhse)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234489</guid><dc:creator><![CDATA[Ceos]]></dc:creator><pubDate>Sat, 24 Feb 2007 08:30:28 GMT</pubDate></item></channel></rss>