<?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[TidTCPServer und Client]]></title><description><![CDATA[<p>Ich wollte jetzt die Kommunikation zwischen Client und Server lernen und darum ein bisschen rumexperimentieren.</p>
<p>Ich habe eine Form,wo Server und Client drauf sind.</p>
<p>IP = localhost<br />
Port = 5000</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Server-&gt;Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Client-&gt;Connect(10000);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerConnect(TIdPeerThread *AThread)
{
  MessageBox(0,&quot;Yeah&quot;,&quot;Connected&quot;,MB_OK);
}
//---------------------------------------------------------------------------
</code></pre>
<p>Die MessageBox wird erfolgreich angezeigt.</p>
<p>Allerdings friert mein Rechner danach sofort ein und ich kann mich nur noch mit dem Resettknopf retten.</p>
<p>Bevor ich jetzt hier noch ewig rum resette und meinen Rechner kaputt mache,wollte ich lieber gleich fragen,was da eigentlich falsch ist und was da jetzt passiert nachdem die Messagebox angezeigt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178940/tidtcpserver-und-client</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 15:28:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178940.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Apr 2007 20:11:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TidTCPServer und Client on Mon, 16 Apr 2007 20:11:46 GMT]]></title><description><![CDATA[<p>Ich wollte jetzt die Kommunikation zwischen Client und Server lernen und darum ein bisschen rumexperimentieren.</p>
<p>Ich habe eine Form,wo Server und Client drauf sind.</p>
<p>IP = localhost<br />
Port = 5000</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Server-&gt;Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Client-&gt;Connect(10000);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerConnect(TIdPeerThread *AThread)
{
  MessageBox(0,&quot;Yeah&quot;,&quot;Connected&quot;,MB_OK);
}
//---------------------------------------------------------------------------
</code></pre>
<p>Die MessageBox wird erfolgreich angezeigt.</p>
<p>Allerdings friert mein Rechner danach sofort ein und ich kann mich nur noch mit dem Resettknopf retten.</p>
<p>Bevor ich jetzt hier noch ewig rum resette und meinen Rechner kaputt mache,wollte ich lieber gleich fragen,was da eigentlich falsch ist und was da jetzt passiert nachdem die Messagebox angezeigt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267365</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Mon, 16 Apr 2007 20:11:46 GMT</pubDate></item><item><title><![CDATA[Reply to TidTCPServer und Client on Tue, 17 Apr 2007 16:34:44 GMT]]></title><description><![CDATA[<p>Setz mal ein IdAntifreeze mit auf die Form</p>
<p>Server</p>
<pre><code class="language-cpp">TIdSocketHandle *handle = Server1-&gt;Bindings-&gt;Add();
   handle-&gt;Port = int(CSpinEdit3-&gt;Value);
   handle-&gt;IP = ComboBox14-&gt;Text;
   Server1-&gt;Active = true;
//-------------
Server1-&gt;Active = false;

    TIdSocketHandle *delhandle;
    for(int i=0;i &lt; Server1-&gt;Bindings-&gt;Count;i++)
    {
     delhandle = Server1-&gt;Bindings-&gt;Items[i];
     delhandle-&gt;CloseSocket(true);
     }

     Server1-&gt;Bindings-&gt;Clear();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267868</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Tue, 17 Apr 2007 16:34:44 GMT</pubDate></item><item><title><![CDATA[Reply to TidTCPServer und Client on Wed, 18 Apr 2007 20:59:45 GMT]]></title><description><![CDATA[<p>Des weiteren solltest du einen execute handler (OnExecute) auf dem Server definieren weil hier mit Threads gearbeitet wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268828</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Wed, 18 Apr 2007 20:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to TidTCPServer und Client on Thu, 19 Apr 2007 13:30:55 GMT]]></title><description><![CDATA[<p>OK ich hab am Wochenende Zeit mich ausführlich damit zu beschäftigen was du vorgeschlagen hast.</p>
<p>Was hat es eigentlich mit diesem Codeabschnitt auf sich,den du geschrieben hast?<br />
Speichert man da etwa alle Clients, die connecten in eine Liste so dass man später darauf einfacher zugreifen kann oder was hat es damit auf sich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269280</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Thu, 19 Apr 2007 13:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to TidTCPServer und Client on Sat, 05 May 2007 17:13:17 GMT]]></title><description><![CDATA[<p>*Thema wieder ausgrab*</p>
<p>Also ich kriege es jetzt hin erfolgreich eine Verbindung auszubauen.<br />
Jetzt ist das Problem, dass ich diese Verbindung nicht mehr beenden kann ohne dass da Fehlermeldungen wie &quot;Terminate Thread Timeout&quot; kommen.</p>
<p>Ich hab jetzt Server und Client in 2 verschiedene Programme gesteckt.</p>
<p>Meine Fragen sind jetzt wie kann ich eine Verbindung</p>
<p>a) vom Server aus schließen.<br />
b) vom Client aus schließen.</p>
<pre><code class="language-cpp">TCPClient-&gt;DisconnectSocket();
TCPClient-&gt;Disconnect();
AThread-&gt;Terminate();
Handle-&gt;CloseSocket(true);
</code></pre>
<p>zeigen gar keine Wirkung.</p>
<p>EDIT: Ich kann ja nochmal schreiben was ich habe.</p>
<p>Client:</p>
<pre><code class="language-cpp">void __fastcall TClient::Button1Click(TObject *Sender)
{
  TCPClient-&gt;Connect(10000);
}
//---------------------------------------------------------------------------

void __fastcall TClient::Button2Click(TObject *Sender)
{
  TCPClient-&gt;DisconnectSocket();
}
</code></pre>
<p>Server:</p>
<pre><code class="language-cpp">//Header
struct TConnectedClient
{
  TDateTime Connect;
  TDateTime LastAction;
  AnsiString IP;
  TThread *ClientThread;
  TIdSocketHandle* ClientHandle;
};
</code></pre>
<pre><code class="language-cpp">void __fastcall TServer::TCPServerConnect(TIdPeerThread *AThread)
{

  TConnectedClient* NewClient = new TConnectedClient;
  NewClient-&gt;Connect = Now();
  NewClient-&gt;LastAction = NewClient-&gt;Connect;
  NewClient-&gt;IP = AThread-&gt;Connection-&gt;Socket-&gt;Binding-&gt;IP;
  NewClient-&gt;ClientThread = AThread;

  NewClient-&gt;ClientHandle = TCPServer-&gt;Bindings-&gt;Add();
  NewClient-&gt;ClientHandle-&gt;IP = NewClient-&gt;IP;
  NewClient-&gt;ClientHandle-&gt;Port = 5000;

  AThread-&gt;Data = reinterpret_cast&lt;TObject*&gt;(NewClient);
  AThread-&gt;FreeOnTerminate = true;

  try
  {
    ClientList-&gt;LockList()-&gt;Add(NewClient);
  }
  __finally
  {
    ClientList-&gt;UnlockList();
    Edit1-&gt;Text = NewClient-&gt;IP; // Zum testen ob Client connected hat.
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1279390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279390</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Sat, 05 May 2007 17:13:17 GMT</pubDate></item></channel></rss>