<?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[Problem mit Socket-Chat]]></title><description><![CDATA[<p>Ich habe mir ein Konsolenbasierendes SOCKET Chat-Programm geschrieben und stehe nun vor einem Problem. Gehen wir von 2 Chatpartnern A und B aus. Immer, wenn A etwas eingibt und B gleichzeitig mit der Eingabe noch nicht fertig war, erscheint der eingegebene Text von A auf EINER Zeile mit dem, was B eingeben wollte in der Konsole von B. Wie kann ich das verhindern?</p>
<p>Win32-Konsole.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270777/problem-mit-socket-chat</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 23:03:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270777.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Jul 2010 00:03:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Socket-Chat on Sun, 18 Jul 2010 00:04:20 GMT]]></title><description><![CDATA[<p>Ich habe mir ein Konsolenbasierendes SOCKET Chat-Programm geschrieben und stehe nun vor einem Problem. Gehen wir von 2 Chatpartnern A und B aus. Immer, wenn A etwas eingibt und B gleichzeitig mit der Eingabe noch nicht fertig war, erscheint der eingegebene Text von A auf EINER Zeile mit dem, was B eingeben wollte in der Konsole von B. Wie kann ich das verhindern?</p>
<p>Win32-Konsole.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927916</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 18 Jul 2010 00:04:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Socket-Chat on Sun, 18 Jul 2010 07:34:10 GMT]]></title><description><![CDATA[<p>Speicher die werte zuerst. Wenn dann \0 gesendet wird wird das angezeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927942</guid><dc:creator><![CDATA[lk]]></dc:creator><pubDate>Sun, 18 Jul 2010 07:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Socket-Chat on Sun, 18 Jul 2010 10:29:54 GMT]]></title><description><![CDATA[<p>Du meinst im Puffer oder? Da werden sie ja sowieso schon gespeichert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927990</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 18 Jul 2010 10:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Socket-Chat on Sun, 18 Jul 2010 10:33:37 GMT]]></title><description><![CDATA[<p>lk meint wohl eher, dass der Text von User A erst dann ausgegeben werden soll, wenn User B mit Return seine Eingabe beendet hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1927992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1927992</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Sun, 18 Jul 2010 10:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Socket-Chat on Sun, 18 Jul 2010 11:14:41 GMT]]></title><description><![CDATA[<p>Wie könnte man das am besten implementieren? Das sind die beiden Threads, die ich zur Kommunikation benutze:</p>
<pre><code class="language-cpp">DWORD WINAPI reader(PVOID pParam)
{
    char line[BUF_SIZ];
    SOCKET s;

    s = *(SOCKET*)pParam;

    while(fgets(line, sizeof(line) - 3, stdin))
    {
        cut(line);
        strcat(line, &quot;\r\n&quot;);    /* passt sicher */
        if (send(s, line, strlen(line), 0) == -1)
            return 1;
    }

    return 0;
}

DWORD WINAPI writer(PVOID pParam)
{
    char  buffer[BUF_SIZ];
    int bytes;
    SOCKET s;

    s = *(SOCKET*)pParam;

    while((bytes = recv(s, buffer, sizeof(buffer), 0)) &gt; 0)
        fwrite(buffer, 1, bytes, stdout);

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1928017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928017</guid><dc:creator><![CDATA[skullyan]]></dc:creator><pubDate>Sun, 18 Jul 2010 11:14:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Socket-Chat on Sun, 18 Jul 2010 11:32:29 GMT]]></title><description><![CDATA[<p>Zeile 28:<br />
Schreibe die empfangenen Bytes nicht direkt in den Ausgabestrom sondern in eine separate Variable. Hier macht sich ne Queue ganz gut. Die STL bietet dazu die Klasse queue <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>ca. Zeile 11:<br />
wäre wohl in dem Code derzeit der beste Platz für die Ausgabe, in dem du deine separate Variable ausgibst oder ueber die queue iterierst.</p>
<p>PS: nimm den Code, den du aus dem Internet herkopierst, ruhig mal Zeile für Zeile auseinander und schau, was da genau abläuft <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/1928028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928028</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Sun, 18 Jul 2010 11:32:29 GMT</pubDate></item></channel></rss>