Bonjour,
J'utilise un serveur TCP Indy (version 9) et au moment de la fermeture du serveur, je veux envoyer un messages à tous les clients connectés.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   if (Serveur1TCP == true)
      {
      TList *List = new TList();
      try {
          List = TCPS1->Threads->LockList();
          int I = 0;
          while (I < List->Count)
                {
                TIdPeerThread(List->Items[I]).Connection->WriteLn("Serveur stop. Vous allez être déconnecté."); // ligne posant problème
                I++;
                }
          TCPS1->Threads->UnlockList();
          delete List;
          }
      catch ( ... )
            {
 
            }
      try {
          TCPS1->Active = false;
          }
      catch ( ... )
            {
 
            }
      Serveur1TCP = false;
Quand le code passe sur la ligne posant problème, une exeption arrive (il n'y a qu'un client connecté :

---------------------------
Notification d'une exception du débogueur
---------------------------
Le projet serveur.exe a provoqué une classe d'exception EAccessViolation avec le message 'Violation d'accès à l'adresse 00402BE4. Lecture de l'adresse 00000000'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
---------------------------
OK Aide
---------------------------
Il n'y a pas de bug si aucun client est connecté et si ce bug a lieu, il y a ensuite ce message quand j'arrive à la ligne qui ferme le serveur :

---------------------------
Notification d'une exception du débogueur
---------------------------
Le projet serveur.exe a provoqué une classe d'exception EIdTerminateThreadTimeout avec le message 'Terminate Thread Timeout'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
---------------------------
OK Aide
---------------------------
Je me suis inspiré de cette page :
http://delphi.developpez.com/faq/?pa...veurversclient

Je n'ai pas mis Pred() parce que je ne sais pas ce que c'est comme fonction, il n'y a rien dans l'aide et C++builder me dit qu'il jne connait pas cette fonction.

Quelqu'un sait comment résoudre ce problème?

Merci