kleines chatprogramm mit indy problem



  • Guten abend zusammen,

    habe ein kleines problem, bei meinem kleinen chat programm.

    ich wollt gern ein 2 in 1 programm haben (Server/Client) von den chattern macht einer einen server auf un der andere verbindet sodass man chatten kann. nur iwie wird beim gegenüber nicht der text übertragen bzw empfangen. ich sitz da heut schon den ganzen tag dran, binnecht am verzweifeln 😞

    Hier mal mein Quellcode:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "ChateOne.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma link "IdCustomTCPServer"
    #pragma link "sSkinManager"
    #pragma resource "*.dfm"
    TForm2 *Form2;
    String s_line;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
    	: TForm(Owner)
    {
    }
    void __fastcall TForm2::serverExecute(TIdContext *AContext)
    {
    AContext->Connection->IOHandler->WriteLn("wilkommen im chat");
    
    for(int x=0;x<server->MaxConnections-1;x++)
    {
    s_line = AContext->Connection->IOHandler->ReadLn();
    AContext->Connection->IOHandler->WriteLn(">> "+s_line);
    }
    
    }
    //---------------------------------------------------------------------------
    // Aktiviere server
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
    server->DefaultPort=StrToInt(Edit2->Text);
    Timer1->Enabled=true;
    Form2->Caption+=(server->GetNamePath())+" Verbunden...";
    }
    
    void __fastcall TForm2::Timer1Timer(TObject *Sender)
    {
    Timer1->Enabled=false;
    server->Active=true;
    Button1->Caption="Verbunden";
    Button1->Enabled=false;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::sendenClick(TObject *Sender)
    {
    client->IOHandler->WriteLn("<"+(Edit1->Text)+"> "+se->Text);
    em->Lines->Add(se->Text);
    se->Text="";
    }
    
    void __fastcall TForm2::FormCreate(TObject *Sender)
    {
    em->Text="";
    se->Text="";	
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::connectClick(TObject *Sender)
    {
    client->Port=StrToInt(port->Text);
    client->Connect(ip->Text,StrToInt(port->Text));
    
    em->Lines->Add(client->IOHandler->ReadLn());
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm2::clientConnected(TObject *Sender)
    {
    em->Lines->Add(client->IOHandler->ReadLn()); 
    //Idee war die Lines in Echtzeit wiederzugeben nur geht leider nicht
    }
    //---------------------------------------------------------------------------
    


  • achso ein keleiner zusatz, mein problem ist auch das es öfters beim senden auch einfriert woran könnte das denn liegen?

    glaub ich hab da nen grundlegenenden denkfehler der einfach mir nicht einleuchten möchte.

    wäre für jegliche art von hilfe sehr dankbar



  • habe jetz wieder ein problem.. der chat friert sofort ein sobald ich einen schleife laufen lasse...

    wie kann ich dieses probleem des pralleleln empfangens und sendens?
    hätte ich vllt vorher shcon konkret als mein problem erwähnen sollen...

    danke³ 😃



  • SuFu: Threads


Anmelden zum Antworten