<?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[IdTelnet-&amp;gt;Disconnect() ausser Kraft?]]></title><description><![CDATA[<p>Hallo und guten Morgen,</p>
<p>... das &quot;Disconnect();&quot; im Hauptthread wird nicht richtig ausgeführt, seit dem ich Daten mit &quot;OnDataAvailable&quot; empfange. Das Disconnect schliesst eigentlich die Socket-Verbindung. Am Thread scheints nicht zu liegen, dasselbe Problem habe ich nämlich auch wenn ich ein Prog nehme das ohne Thread arbeitet. Das Schliessen der Verbindung funktioniert bisher nur, wenn ich für OnDataAvailable keine Ereignis-Behandlung schreibe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ... In OnCloseQuery sieht der entscheidende Teil so aus:</p>
<pre><code class="language-cpp">...
else //falls Ok gewählt wurde
    IdTelnet1-&gt;OnDisconnect= 0; //Deaktivieren des OnDisconnect-Ereignis
    if (FNewThread)
        FNewThread-&gt;Terminate();
    //wenn Thread vorhanden, Thread schliessen
    CanClose = true; //HauptForm wird geschlossen
}
</code></pre>
<p>Eigentlich wird beim Zerstören der MainForm auch das Socket getrennt...</p>
<p>Zusätzlich gibt es im Prog einen Button, mit dem die Verbindung getrennt werden kann.<br />
Auch hier bleibt aber die Verbindung nach dem Disconnect auf der Gegenseite bestehen:</p>
<pre><code class="language-cpp">...
    else //wenn verbunden
    {
    if (FNewThread)
        FNewThread-&gt;Terminate();
    IdTelnet1-&gt;Disconnect(); //Verbindung zu Remote-IP trennen
    }
}
</code></pre>
<p>Schon rätselhaft - ich bin echt ratlos <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><strong>(1)</strong> Hat jemand eine Idee, warum das Socket nicht sauber geschlossen / getrennt wird?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183447/idtelnet-gt-disconnect-ausser-kraft</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 05:01:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183447.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Jun 2007 06:52:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to IdTelnet-&amp;gt;Disconnect() ausser Kraft? on Thu, 14 Jun 2007 07:31:43 GMT]]></title><description><![CDATA[<p>Hallo und guten Morgen,</p>
<p>... das &quot;Disconnect();&quot; im Hauptthread wird nicht richtig ausgeführt, seit dem ich Daten mit &quot;OnDataAvailable&quot; empfange. Das Disconnect schliesst eigentlich die Socket-Verbindung. Am Thread scheints nicht zu liegen, dasselbe Problem habe ich nämlich auch wenn ich ein Prog nehme das ohne Thread arbeitet. Das Schliessen der Verbindung funktioniert bisher nur, wenn ich für OnDataAvailable keine Ereignis-Behandlung schreibe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ... In OnCloseQuery sieht der entscheidende Teil so aus:</p>
<pre><code class="language-cpp">...
else //falls Ok gewählt wurde
    IdTelnet1-&gt;OnDisconnect= 0; //Deaktivieren des OnDisconnect-Ereignis
    if (FNewThread)
        FNewThread-&gt;Terminate();
    //wenn Thread vorhanden, Thread schliessen
    CanClose = true; //HauptForm wird geschlossen
}
</code></pre>
<p>Eigentlich wird beim Zerstören der MainForm auch das Socket getrennt...</p>
<p>Zusätzlich gibt es im Prog einen Button, mit dem die Verbindung getrennt werden kann.<br />
Auch hier bleibt aber die Verbindung nach dem Disconnect auf der Gegenseite bestehen:</p>
<pre><code class="language-cpp">...
    else //wenn verbunden
    {
    if (FNewThread)
        FNewThread-&gt;Terminate();
    IdTelnet1-&gt;Disconnect(); //Verbindung zu Remote-IP trennen
    }
}
</code></pre>
<p>Schon rätselhaft - ich bin echt ratlos <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><strong>(1)</strong> Hat jemand eine Idee, warum das Socket nicht sauber geschlossen / getrennt wird?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299015</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Thu, 14 Jun 2007 07:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to IdTelnet-&amp;gt;Disconnect() ausser Kraft? on Thu, 14 Jun 2007 07:25:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>auch dieses Problem muss ich nochmal rauskramen. <strong>(2)</strong> Was sagt mir im Zshg mit dem Disconnect()-Problem folgende Fehlermeldung:</p>
<p><strong>In Projekt ... ist eine Exception der Klasse EIdClosedSocket mit der Meldung 'Verbindung aufgehoben.' aufgetreten.</strong> ???</p>
<p>Diese erscheint, wenn ich das Prog schliesse. Die Methode für &quot;Prog schliessen&quot; sieht so aus:</p>
<pre><code class="language-cpp">void __fastcall TIndyTelnetClient::FormCloseQuery(TObject *Sender, bool &amp;CanClose)
{
    int A;

    A= MessageBox (void(), &quot;... Verbindung wird automatisch  getrennt!&quot;, \
    &quot;Beenden ...&quot;, MB_ICONWARNING | MB_OKCANCEL | MB_DEFBUTTON1);

    if (A== IDCANCEL) 
    {    CanClose = false;    }

    else if (A== IDOK)
    {    IdTelnet1-&gt;OnDisconnect= 0; 
         //deakt - EventFkt greift durch automat. Disconnect nach Destroy auf Form zu
         CanClose = true;    } 
}
</code></pre>
<p>Liegt es viell. daran, dass ich keine Ereignis-Behandlung für OnDisconnected habe? Kann ich mir nicht vorstellen...</p>
<p>Fakt ist, die Verbindung besteht immernoch nach ProgEnde, bzw. die andere Seite wartet noch, eh Win das Socket endgültig schliesst.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304685</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Thu, 14 Jun 2007 07:25:06 GMT</pubDate></item><item><title><![CDATA[Reply to IdTelnet-&amp;gt;Disconnect() ausser Kraft? on Thu, 14 Jun 2007 07:34:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich kann und will mir irgendwie nicht vorstellen, dass dazu niemand ne Idee hat... <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>Bitte gebt Euren Senf dazu, wenn Ihr auch nur ansatzweise eine Idee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> habt.</p>
<p>Danke</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1305382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1305382</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Thu, 14 Jun 2007 07:34:36 GMT</pubDate></item></channel></rss>