<?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[Zwei Threads, ein Socket = Probleme?]]></title><description><![CDATA[<p>In meinem Programm wird ein neuer Thread gestartet, welcher einen TCP/IP socket initialisiert, genau eine verbindung akzeptiert und ständig von ihm liest (recv). Der Thread des Hauptprogrammes muß auf den geöffneten socket allerdings auch für Schreibzugriffe/send() benutzen können. Ich frage mich nun, ob ich den socket als gemeinsam genutzte Ressource über eine critical-section synchroniseren muß. Wenn ja, klappt das überhaupt? Immerhin würde der zweite Thread beständig von dem socket lesen und ihn doch somit permanent blockieren..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162073/zwei-threads-ein-socket-probleme</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 04:25:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162073.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Oct 2006 12:41:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 12:41:49 GMT]]></title><description><![CDATA[<p>In meinem Programm wird ein neuer Thread gestartet, welcher einen TCP/IP socket initialisiert, genau eine verbindung akzeptiert und ständig von ihm liest (recv). Der Thread des Hauptprogrammes muß auf den geöffneten socket allerdings auch für Schreibzugriffe/send() benutzen können. Ich frage mich nun, ob ich den socket als gemeinsam genutzte Ressource über eine critical-section synchroniseren muß. Wenn ja, klappt das überhaupt? Immerhin würde der zweite Thread beständig von dem socket lesen und ihn doch somit permanent blockieren..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154600</guid><dc:creator><![CDATA[Serethos]]></dc:creator><pubDate>Sat, 14 Oct 2006 12:41:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 14:42:23 GMT]]></title><description><![CDATA[<p>Serethos schrieb:</p>
<blockquote>
<p>In meinem Programm wird ein neuer Thread gestartet, welcher einen TCP/IP socket initialisiert, genau eine verbindung akzeptiert und ständig von ihm liest (recv). Der Thread des Hauptprogrammes muß auf den geöffneten socket allerdings auch für Schreibzugriffe/send() benutzen können. Ich frage mich nun, ob ich den socket als gemeinsam genutzte Ressource über eine critical-section synchroniseren muß. Wenn ja, klappt das überhaupt? Immerhin würde der zweite Thread beständig von dem socket lesen und ihn doch somit permanent blockieren..</p>
</blockquote>
<p>Also ist der socket(handle) im child process? Eieiei, so würde ich es net machen.</p>
<p>Also normalerweise macht man es mit select() statt mit threads. Da ich aber genau so ein Sturkopf bin, nutze ich auch threads.<br />
Also leg mal im Hauptprocess den socket an. recv() lieber im Hauoptprocess und send() lieber im child process. Fall das gegenüberliegende socket geschlossen wird, kannst du dann sofort daruaf reagieren und deine anwendung auch beenden.</p>
<p>Und achte darauf, dass du ZUERST den socket anlegs bevor du listen() etc aufrufst.</p>
<p>MfG, Klugscheisser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154663</guid><dc:creator><![CDATA[asdsad]]></dc:creator><pubDate>Sat, 14 Oct 2006 14:42:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 15:59:13 GMT]]></title><description><![CDATA[<p>Leider habe ich die Wahl nicht: Die Geschichte wird in einer DLL ausgeführt, welche als plugin von einem Programm benutzt wird. Da die Anwendung selbst für Gui und Programmlogik nur einen(!) Thread benutzt, würde das accept() im Hauptthread die komplette Gui blocken und die Hauptschleife selbst blocken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154706</guid><dc:creator><![CDATA[Serethos]]></dc:creator><pubDate>Sat, 14 Oct 2006 15:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 16:14:12 GMT]]></title><description><![CDATA[<p>Welches Betriebssystem benutzt du?</p>
<p>Ich glaube nicht, dass das Probleme geben könnte, da es Lesen und Schreiben im Grunde zwei getrennte Dinge sind für den Kernel und die Hardware ja eh über den Treiber synchronisiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154710</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sat, 14 Oct 2006 16:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 17:19:33 GMT]]></title><description><![CDATA[<p>Win XP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154754</guid><dc:creator><![CDATA[Serethos]]></dc:creator><pubDate>Sat, 14 Oct 2006 17:19:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 18:01:27 GMT]]></title><description><![CDATA[<p>Ja, dann ist es so wie rüdiger es gesagt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154771</guid><dc:creator><![CDATA[Christoph K.]]></dc:creator><pubDate>Sat, 14 Oct 2006 18:01:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 18:04:18 GMT]]></title><description><![CDATA[<p>Serethos schrieb:</p>
<blockquote>
<p>Win XP</p>
</blockquote>
<p>Ich verschiebe es mal ins WinAPI-Forum, da die Leute dort sicher mehr Ahnung haben von den internen Angelegenheiten in Windows (und Winsocks sind ja ein Teil der WinAPI)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154772</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sat, 14 Oct 2006 18:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sat, 14 Oct 2006 18:04:31 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=1819" rel="nofollow">rüdiger</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=8" rel="nofollow">Rund um die Programmierung</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154773</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 14 Oct 2006 18:04:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sun, 15 Oct 2006 09:56:23 GMT]]></title><description><![CDATA[<p>Ich bin mir relativ sicher, daß der Socket nicht syncronisiert werden muß,<br />
da send und recv den Wert aus dem Socket immer nur auslesen und es beim<br />
lese-lese Zugriff keine Probleme geben dürfte.<br />
(Außerdem ist der Socket, wie ja auch 'rüdiger' sagt, sowieso Treadsicher)</p>
<p>Ich bin noch nen größerer Sturkopf und habe 2 Thread benutzt einen für recv<br />
(Der blockiert ja so schön und braucht dann keine CPU Power, wenn nichts ansteht)</p>
<p>Und einen Thread für send, dieser sendet und legt sich dann schlafen (ist ganz einfach zu machen). Wenn wieder was zum Senden ansteht, wecke ich ihn halt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1154992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1154992</guid><dc:creator><![CDATA[MisterX]]></dc:creator><pubDate>Sun, 15 Oct 2006 09:56:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sun, 15 Oct 2006 12:35:21 GMT]]></title><description><![CDATA[<p>Vielen Dank für Eure Antworten. Ich werd mir nun also keine Sorgen machen, das bestätigt auch meine bisherigen Erfahrungen beim Rumexperimentieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1155083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155083</guid><dc:creator><![CDATA[Serethos]]></dc:creator><pubDate>Sun, 15 Oct 2006 12:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Threads, ein Socket = Probleme? on Sun, 15 Oct 2006 13:53:29 GMT]]></title><description><![CDATA[<p>Wenn du WinAPI proggst (sockets laufen ja sowohl unter LINUX als auch unter WINDOWS) kannst du auch auf die WinInet-Funktionen zurückgreifen (WSAxxx). Die sind bereits in Threads gepackt. Immer wenns 'was neues gibt' bekommst du dann ne bestimmte Nachricht <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/1155113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1155113</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 15 Oct 2006 13:53:29 GMT</pubDate></item></channel></rss>