<?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[cout stört die Eingabe (2 Threads)]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe einen Chat geschrieben, der mit 2 Threads funktioniert:<br />
Einer zum Senden und einer zum Empfangen.<br />
Das ganze funktioniert auch ganz gut, es gibt nur leider noch ein Problem:<br />
Wenn man eine Nachricht empfängt, während man gerade etwas eingibt, dann wird das Empfangene mitten in den Satz, den man gerade schreibt reingeschrieben...</p>
<p>Bisherige Lösungsideen sind folgende:<br />
- In eine GUI-Anwendung umwandeln<br />
- irgendwie eine zweite Konsole bekommen (Eine für Ein-, eine für Ausgabe)<br />
- In zwei Programme unterteilen (-&gt; 2 Konsolen)</p>
<p>Am liebsten würde ich es aber irgendwie anders lösen, also mit nur einer Konsole und ohne GUI, aber ich fürchte, dass das nicht so einfach möglich ist...<br />
Es sollte danach wenn möglich immer noch plattformunabhängig laufen können.</p>
<p>Ich habe den Chat übrigens mit SFML geschrieben (network-package fürs netzwerk/inet und system package für threads).</p>
<p>Falls jemand eine Idee hat, bitte melden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285892/cout-stört-die-eingabe-2-threads</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 05:09:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285892.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 29 Apr 2011 11:49:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 11:49:07 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe einen Chat geschrieben, der mit 2 Threads funktioniert:<br />
Einer zum Senden und einer zum Empfangen.<br />
Das ganze funktioniert auch ganz gut, es gibt nur leider noch ein Problem:<br />
Wenn man eine Nachricht empfängt, während man gerade etwas eingibt, dann wird das Empfangene mitten in den Satz, den man gerade schreibt reingeschrieben...</p>
<p>Bisherige Lösungsideen sind folgende:<br />
- In eine GUI-Anwendung umwandeln<br />
- irgendwie eine zweite Konsole bekommen (Eine für Ein-, eine für Ausgabe)<br />
- In zwei Programme unterteilen (-&gt; 2 Konsolen)</p>
<p>Am liebsten würde ich es aber irgendwie anders lösen, also mit nur einer Konsole und ohne GUI, aber ich fürchte, dass das nicht so einfach möglich ist...<br />
Es sollte danach wenn möglich immer noch plattformunabhängig laufen können.</p>
<p>Ich habe den Chat übrigens mit SFML geschrieben (network-package fürs netzwerk/inet und system package für threads).</p>
<p>Falls jemand eine Idee hat, bitte melden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056041</guid><dc:creator><![CDATA[Gast1337]]></dc:creator><pubDate>Fri, 29 Apr 2011 11:49:07 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 11:56:22 GMT]]></title><description><![CDATA[<p>ncurses</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056043</guid><dc:creator><![CDATA[ideehaber]]></dc:creator><pubDate>Fri, 29 Apr 2011 11:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 11:56:57 GMT]]></title><description><![CDATA[<p>Wie sehen denn deine Ein- bzw. Ausgabe-Funktionen aus?<br />
Wenn du mit Multi-Threading arbeitest, mußt du natürlich die Zugriffe auf eine gemeinsame Resource (hier: die Konsole) synchronisieren, so daß der Empfangs-Thread warten muß, während der Nutzer etwas eingibt. Alternative Lösungen fallen mir nur mit systemspezifischen Mehoden ein - aber das würde auch darauf hinauslaufen, im Konsolenfenster eine Pseudo-GUI zu gestalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056044</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 11:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 11:58:35 GMT]]></title><description><![CDATA[<p>Über sowas hab ich mir auch schon mehrfach den Kopf zerbrochen, ohne Erfolg. Ich bin zu dem Schluss gekommen, dass sowas nicht möglich ist. Ich würds dann in eine simple GUI packen, in der du unten eine kleine Box (einzeilig) für Eingaben hast und oben eine größere, für die Ausgaben. Ich wollte sowas für eine Client-Server Umgebung haben als provisorischen minimal-Client, der einfache Kommandos asynchron an den Server schickt und Nachrichten vom Server empfängt.</p>
<p>Wenn du in der Hinsicht was nettes hinbekommst sag Bescheid <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/2056045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056045</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 29 Apr 2011 11:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:00:35 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>so daß der Empfangs-Thread warten muß, während der Nutzer etwas eingibt.</p>
</blockquote>
<p>Das hieße, dass a) Die Eingabe nicht immer bereit ist und man sie &quot;irgendwie&quot; bereit schalten muss, oder b) die Eingabe immer bereit ist (cin eben) und dadurch die Ausgabe/der Empfang fast immer blockiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056047</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:00:35 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:04:17 GMT]]></title><description><![CDATA[<p>Jo, das Problem hatte ich bei meinem aktuellen Projekt auch ( eben ein kleines Chat-Programm ) . Aber wenn du ein Chat Programm coden willst, dann brauchst du so und so zmd ein kleines GUI, von daher ... alles andere wäre glaube ich auch unnötig kompliziert.</p>
<p>Offtopic : Gibt es eig. irgendeine Methode ein Server-Programm irgendwo extern laufen zu lassen ? Ohne Kosten wohl ja nicht ? Das macht selbstgecodede Chat-Programme iwie unlukrativ, würde viel mehr Spass machen wenn man nicht eigends immer iwo den Server starten müsste ... denn dann läuft das ja nur, falls der PC mit dem Server gerade zufällig am Laufen ist. Ausserdem muss der Client dann jedes mal die IP + Port eingeben, wenn man davon ausgeht, dass der Server nicht immer auf dem gleichen PC gestartet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056048</guid><dc:creator><![CDATA[cvcv]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:05:51 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>so daß der Empfangs-Thread warten muß, während der Nutzer etwas eingibt.</p>
</blockquote>
<p>Das hieße, dass a) Die Eingabe nicht immer bereit ist und man sie &quot;irgendwie&quot; bereit schalten muss, oder b) die Eingabe immer bereit ist (cin eben) und dadurch die Ausgabe/der Empfang fast immer blockiert ist.</p>
</blockquote>
<p>Ja, das ist mir auch aufgefallen, aber mit Standard-Mitteln fällt mir auch nichts besseres ein.</p>
<p>Außerhalb des Standards könnte man die Eingaben direkt von der Tastatur holen und zwischenspeichern und dann aus der Ausgabe-Funktion heraus die vorhandene Eingabezeile überschreiben und eine Zeile tiefer neu ausgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056050</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:05:51 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:08:28 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>so daß der Empfangs-Thread warten muß, während der Nutzer etwas eingibt.</p>
</blockquote>
<p>Das hieße, dass a) Die Eingabe nicht immer bereit ist und man sie &quot;irgendwie&quot; bereit schalten muss, oder b) die Eingabe immer bereit ist (cin eben) und dadurch die Ausgabe/der Empfang fast immer blockiert ist.</p>
</blockquote>
<p>Ja, das ist mir auch aufgefallen, aber mit Standard-Mitteln fällt mir auch nichts besseres ein.</p>
<p>Außerhalb des Standards könnte man die Eingaben direkt von der Tastatur holen und zwischenspeichern und dann aus der Ausgabe-Funktion heraus die vorhandene Eingabezeile überschreiben und eine Zeile tiefer neu ausgeben.</p>
</blockquote>
<p><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="😃"
    /> Da mache ich lieber paar CreateWindowEx call's ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056053</guid><dc:creator><![CDATA[cvcv]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:08:28 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:11:59 GMT]]></title><description><![CDATA[<p>ideehaber schrieb:</p>
<blockquote>
<p>ncurses</p>
</blockquote>
<p>ist afaik nicht Plattformunabhängig, weils unter Windows nur mit cygwin oder ähnlichem zusammen läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056056</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:11:59 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:14:48 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Außerhalb des Standards könnte man die Eingaben direkt von der Tastatur holen und zwischenspeichern und dann aus der Ausgabe-Funktion heraus die vorhandene Eingabezeile überschreiben und eine Zeile tiefer neu ausgeben.</p>
</blockquote>
<p>Ja, nur nehm ich dann lieber irgendein GUI-Toolkit und bau mir eben zwei Textfelder für Ein-und Ausgabe drauf <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/2056057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056057</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 12:59:41 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Ja, nur nehm ich dann lieber irgendein GUI-Toolkit und bau mir eben zwei Textfelder für Ein-und Ausgabe drauf <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>Ja, eine GUI hatte er selbst schon genannt - zusammen mit der Aussage, daß er eine andere Lösung sucht (Zitat: &quot;also mit nur einer Konsole und ohne GUI&quot;). Von dem Ansatz aus habe ich mal versucht, kreativ zu werden <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/2056067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056067</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to cout stört die Eingabe (2 Threads) on Fri, 29 Apr 2011 13:50:39 GMT]]></title><description><![CDATA[<p>Vielleicht wäre PDCurses was für Dich. Das gibts fast für jede gängige Plattfrom und ist relativ einfach zu benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2056089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2056089</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 29 Apr 2011 13:50:39 GMT</pubDate></item></channel></rss>