Kontrollieren was TCPServer in INDY an welchen client schickt



  • Hi
    Ich habe einen tcpserver und mehrere tcpclients ich benutze indy..ich wurde gerne wissen ob ich kotrollieren kan was an welchen client geschickt wirdt..zum beispiel ich habe client A und B..die alle 5 minuten eine session mit dem server machen..und der server will eine message zu client A schicken und eine andere message zu client B schicken...aber ich weis nur das ich diese methode benutzen kan:
    AThread->Connection->WriteLn("message");

    aber wen ich AThread->Connection->WriteLn("message fur A"); mache und dan client B zuerst die message aus dem buffer nimt..dan ist das nich correct..gibt es eine method um zu bestimmen fuer wehn die message im buffer ist ?





  • //------------------------------------------------
    void __fastcall TForm1::DisconnectAllClients(TThreadList *threadlist)
    {
    
       TIdPeerThread *Thread;
       TList *Tlist = threadlist->LockList();
    
       for(int i=0;i < Tlist->Count ;i++)
      {
         Thread = (TIdPeerThread *)Tlist->Items[i];
    
         if(Thread->Connection->Connected())
         Thread->Connection->Disconnect();
      }
    
      threadlist->UnlockList();
    
    }
    //------------------------------------------------
    void __fastcall TForm1::DisconnectAClient(TThreadList *threadlist,unsigned int ThreadID)
    {
    
       TIdPeerThread *Thread;
       TList *Tlist = threadlist->LockList();
    
       for(int i=0;i < Tlist->Count ;i++)
      {
         Thread = (TIdPeerThread *)Tlist->Items[i];
    
         if(Thread->Connection->Connected() && Thread->ThreadID == ThreadID)
         Thread->Connection->Disconnect();
    
      }
    
      threadlist->UnlockList();
    
    }
    //------------------------------------------------
    void __fastcall TForm1::SendTCPMessage(TIdPeerThread *AThread,char *msg)
    {
      TCP_Message send;     //Struktur !
      memset(&send, 0, sizeof(TCP_Message));
      strcpy(send.Id,"TCP");
      strcpy(send.Msg,msg);
    
      if(AThread->Connection->Connected())
      AThread->Connection->WriteBuffer((char *)&send,1024,true);
    
    }
    

    Hier ein paar Beispiele von mir


Anmelden zum Antworten