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 :
Quand le code passe sur la ligne posant problème, une exeption arrive (il n'y a qu'un client connecté :
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;
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 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
---------------------------
Je me suis inspiré de cette page :---------------------------
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
---------------------------
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
Partager