<?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[Schauen, ob Socket noch &amp;quot;lebt&amp;quot;?]]></title><description><![CDATA[<p>Hi!<br />
Ich hab da ein Problem.<br />
Ich möchte mich auf einem Server einloggen, allerdings bekomme ich - wenn das Passwort falsch ist - eine fehlermeldung vom Server und die Verbindung wird vom Server sofort unterbrochen.</p>
<p>Ich habe eine Schleife in einem Thread While (rc!=SOCKET_ERROR), die die ganze Zeit überprüft, ob neue Nachrichten reingekommen sind. Die empfangenen oder gesendeten bytes von send und recv werden in rc gespeichert.<br />
Wenn die Verbindung plötzlich gekappt wurde, &quot;denkt&quot; die Schleife, dass die Verbindung noch besteht, da in rc ja noch die letzte anzahl der Empfangen Bytes drinn steht und nicht SOCKET_ERROR. Dadurch kackt mein Programm natürlich ab.</p>
<p>Kann man rc irgendwie aktualisieren, außer mit send und recv? Oder gibt es eine funktion mit der man testen kann, ob überhaupt noch eine Verbindung da ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128226/schauen-ob-socket-noch-quot-lebt-quot</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 19:58:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128226.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Dec 2005 16:25:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 01 Dec 2005 16:25:06 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich hab da ein Problem.<br />
Ich möchte mich auf einem Server einloggen, allerdings bekomme ich - wenn das Passwort falsch ist - eine fehlermeldung vom Server und die Verbindung wird vom Server sofort unterbrochen.</p>
<p>Ich habe eine Schleife in einem Thread While (rc!=SOCKET_ERROR), die die ganze Zeit überprüft, ob neue Nachrichten reingekommen sind. Die empfangenen oder gesendeten bytes von send und recv werden in rc gespeichert.<br />
Wenn die Verbindung plötzlich gekappt wurde, &quot;denkt&quot; die Schleife, dass die Verbindung noch besteht, da in rc ja noch die letzte anzahl der Empfangen Bytes drinn steht und nicht SOCKET_ERROR. Dadurch kackt mein Programm natürlich ab.</p>
<p>Kann man rc irgendwie aktualisieren, außer mit send und recv? Oder gibt es eine funktion mit der man testen kann, ob überhaupt noch eine Verbindung da ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931464</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Thu, 01 Dec 2005 16:25:06 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 01 Dec 2005 16:30:19 GMT]]></title><description><![CDATA[<p>If the connection has been gracefully closed, the return value is zero.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931470</guid><dc:creator><![CDATA[Penner]]></dc:creator><pubDate>Thu, 01 Dec 2005 16:30:19 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 01 Dec 2005 16:32:49 GMT]]></title><description><![CDATA[<p>Wenn die Verbindung &quot;abgebrochen&quot; wird bekommst Du normalerweise ein SOCKET_ERROR zurück und ein WSAGetLastError von WSACONNECTIONRESET (o.s.ä.)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931472</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 01 Dec 2005 16:32:49 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 01 Dec 2005 17:41:08 GMT]]></title><description><![CDATA[<p>Man kann irgendwie den Status vom Socket Abfragen, das hab ich schon n diversen TcpView-Tools gesehen. Schau nochmal in der MSDN oder zieh dir den Source zu dem angesprochen Prog, das gibts auf <a href="http://sysinternals.com" rel="nofollow">sysinternals.com</a></p>
<p>&lt;edit&gt; Guckst du hier:<br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/recv_2.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/recv_2.asp</a></p>
<p>&lt;edit2&gt; Komischerweise kommt man auf eine andere Seite wenn man auf den Link klickt, das steht aber bei mir in der Adressleiste...<br />
Funktion: getsockopt(...)</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931473</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Thu, 01 Dec 2005 17:41:08 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 01 Dec 2005 16:54:00 GMT]]></title><description><![CDATA[<p>Habs hingekriegt. Die Lösung war denkbar einfach.<br />
Ich habe einfach send(s, 0, 0, 0 ) gemacht, also einfach ein send, der 0 Bytes verschickt. <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="🙂"
    /> Find ich zwar net so sauber, aber es funktioniert. <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/931500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931500</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Thu, 01 Dec 2005 16:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 01 Dec 2005 16:55:34 GMT]]></title><description><![CDATA[<p>Frickler!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/931504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/931504</guid><dc:creator><![CDATA[100%]]></dc:creator><pubDate>Thu, 01 Dec 2005 16:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Thu, 17 Jan 2008 14:13:23 GMT]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>Befass mich auch gerade mit so einem Thema.</p>
<p>Kurze Zusammenfassung:<br />
Client-Server-Architektur, mehrere Sockets über IOCompletionPorts. Kommunikation und Datenaustausch klappt schon länger (ist schon in Betrieb) ohne Probleme. Selbige findet nicht nur über LAN sondern auch WAN statt.</p>
<p>Wenn nun eine Verbindung zum Server von ausserhalb abreisst (Stecker raus etc.) dann bekommt der SVR das nicht mit. Da das bei der Anwendung u.U. schon mal vorkommen kann, such ich nach einer Möglichkeit, zyklisch zu überprüfen ob denn evtl. 'tote' Sockets in der Liste hängen um selbige aus der Liste zu entnehmen um den Speicher wieder freizugeben.</p>
<p>Der Weg über 'send ( skt, 0, 0, 0 );' klappt leider nicht, bekomme der Definition nach immer 0 als Rückgabewert (was ja auch stimmt, man schickt ja auch nix) und der Socket wird weiterhin als lebendig gehandhabt. Eine weitere Möglichkeit wäre das Protokoll um ein alive-Paket zu erweitern, welches mittels eines Timer feststellt, ob die Verbindung u.U. nicht mehr ganz richtig steht. Dieser Weg ist allerdings eher suboptimal und würde einen immensen Rattenschwanz nach sich ziehen. Abgesehen davon würde ich polling nur äußerst ungern implementieren.</p>
<p>Hat jemand eine Idee?</p>
<p>m.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1438424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1438424</guid><dc:creator><![CDATA[m.trix]]></dc:creator><pubDate>Thu, 17 Jan 2008 14:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to Schauen, ob Socket noch &amp;quot;lebt&amp;quot;? on Tue, 14 Oct 2008 17:30:41 GMT]]></title><description><![CDATA[<p>Ich suche auch nach einer Möglichkeit... Schließe mich der Frage also an <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/1598938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598938</guid><dc:creator><![CDATA[Blubb]]></dc:creator><pubDate>Tue, 14 Oct 2008 17:30:41 GMT</pubDate></item></channel></rss>