Bonjour,

Mon programme est un serveur gérant des connections clients demandant à utiliser des requêtes sur un autre serveur.
Pour ce j'ai créé une classe de clients nommé CClient contenant l'adresse IP du client, un port de connection et un timestamp (date jusqu'a laquelle il peut utiliser les requêtes)
J'ai une autre classe PoolClient qui est un vector de CClient (en gros).
Dans le main je déclare un pointeur pListeClient et j'utilise une méthode addClient (déclaré et développé dans PoolClient.cpp et PoolClient.h) pour rajouter le client qui se connecte.
Le problème que je rencontre est qu'en débug, lorsque je passe dans la méthode addClient(), la liste est bien mise à jour mais quand je ressors de la méthode et que je reviens dans mon main, ce client n'est pas rajouté dans le pointeur pListe Client.
Est-ce que quelqu'un a déja rencontré ce pb?

Voici le code utilisé :
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
27
 
    int res=treatToken();
    int validity=controlValidity();
    cleanPoolClient();
    if (iperfPort=="")
    {
      iPort = pPortManager->reservePort();
    }
    else
    {
      iPort = pPortManager->reservePort(strToInt(iperfPort));
    }
    time_t tTimestamp = strToInt(timestamp);
    CClient client(addIPappelant, typeconnect, iPort, tTimestamp);
    string IP=client.getIpAddress();
 
    bool iControlIP=controlIP(IP);
    if (iControlIP==true)
    {
      res=6;
    }
    else
    {
    int iControlIperf=controlIperf();
    int ajout=pPoolClient->addClient(client);
    }
    iperfPort="";
la méthode du PoolClient.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
int PoolClient::addClient(CClient client)
{
  liste_client.push_back(client);
  int res=liste_client.size();
  return res;
}
PoolClient.h
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
27
28
29
30
31
 
#ifndef POOLCLIENT_H
#define POOLCLIENT_H
 
 
#include <iostream>
#include <algorithm>
#include <vector>
 #include <ctime>
 
#include "CClient.h"
 
using namespace std;
 
class PoolClient
{
 
public:
    PoolClient();
    ~PoolClient();
    int addClient(CClient client);
    int deleteClient(CClient client);
    int cleanPool();
    bool existeIP(string IP);
 
private:
    vector<CClient> liste_client;
    int deleteClient(vector<CClient>::iterator i);
};
 
#endif // POOLCLIENT_H