1
Réseau / Récupérer l'ip d'un client dans un selector.
« le: Juin 03, 2012, 09:19:13 pm »
Bonjour
Je souhaite avoir l'ip du client connecté lorsque j'utilise un SelectorTCP. Voici le code, tout simple :
Comme vous pouvez le voir, je veux avoir l'ip du client là où on reçoit et traite le Packet. Ce que je ne comprend pas c'est que l'ip affichée est la bonne un peu plus haut, mais pas à l'endroit où je veux.
Comment faire ?
Merci d'avance
Je souhaite avoir l'ip du client connecté lorsque j'utilise un SelectorTCP. Voici le code, tout simple :
while (true)
{
unsigned int NbSockets = Selector.Wait();
for (unsigned int i = 0; i < NbSockets; ++i) {
SocketTCPPerso Socket = Selector.GetSocketReady(i);
sf::IPAddress Address;
if (Socket == Listener) {
sf::SocketTCP Client;
Listener.Accept(Client, &Address);
std::cout << "Server " << Address << " connected." << std::endl; // affiche la bonne IP
Selector.Add(Client);
}
else {
sf::Packet Packet;
if (Socket.Receive(Packet) == sf::Socket::Done) {
std::string operation;
Packet >> operation;
std::cout << "ip : " << Address << std::endl; // affiche 255.255.255.255
}
else {
Selector.Remove(Socket.socketTCP);
}
}
}
}
{
unsigned int NbSockets = Selector.Wait();
for (unsigned int i = 0; i < NbSockets; ++i) {
SocketTCPPerso Socket = Selector.GetSocketReady(i);
sf::IPAddress Address;
if (Socket == Listener) {
sf::SocketTCP Client;
Listener.Accept(Client, &Address);
std::cout << "Server " << Address << " connected." << std::endl; // affiche la bonne IP
Selector.Add(Client);
}
else {
sf::Packet Packet;
if (Socket.Receive(Packet) == sf::Socket::Done) {
std::string operation;
Packet >> operation;
std::cout << "ip : " << Address << std::endl; // affiche 255.255.255.255
}
else {
Selector.Remove(Socket.socketTCP);
}
}
}
}
Comme vous pouvez le voir, je veux avoir l'ip du client là où on reçoit et traite le Packet. Ce que je ne comprend pas c'est que l'ip affichée est la bonne un peu plus haut, mais pas à l'endroit où je veux.
Comment faire ?
Merci d'avance