Salut.
J'ai un problème, j'envoie un pointeur à une fonction mais celui-ci n'est pas modifié.
Je récupère la dernière requête reçue, ainsi que un pointeur vers l'utilisateur qui a envoyé la requête afin de renvoyer une réponse, malheureusement, le pointeur *user que j'envoie à la fonction n'est pas modifié du coup j'ai un socket null et ça plante :
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 std::string Network::getLastRequest(User* user) { std::string request=""; clock.restart(); std::vector<std::pair<User*, std::string>>::iterator it; while (request == "" && clock.getElapsedTime().asSeconds() < timeOut.asSeconds()) { if (requests.size() > 0) { it = requests.begin(); request = it->second; user = it->first; it = requests.erase(it); } } return request; }
Voici le prototype de la fonction dans le .h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 odfaeg::User* user = nullptr; if (odfaeg::Network::hasRequest()) { std::string request = odfaeg::Network::getLastRequest(user); std::cout<<"request : "<<request<<std::endl; std::cout<<"socket adress : "<<&user->getTcpSocket()<<std::endl; if (request == "ping") { odfaeg::SymEncPacket packet; packet<<"pong"; user->sendTcpPacket(packet); } }
Pour info je suis sur ubuntu 64 bits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 static std::string getLastRequest (User *user = nullptr);
Partager