Bonjour à tous voilà mon pb:
dans le code si-dessous je récupère le nom du client connecté avec getnameinfo.
Lorsque je teste en mode debug pas de pb, getnameinfo fonctionne correctement mais, en mode release je n'ai + rien la chaine HostNameClient est vide.
Si qqun peu m'aider merci :) .
bool CSock::SocketAccept(CSock *aSock, char* NomClient)
{
char IpClient[100];
char HostNameClient[100];
HostNameClient[0]=0;
//Accept the connection ON this socket , and FROM the other socket.
int sinsize = sizeof(struct sockaddr_in);
aSock->Sock= accept(Sock, (struct sockaddr *)&aSock->sin, &sinsize);
//Watch if connection was correctly accepted
if(aSock->Sock == INVALID_SOCKET)
{
cout << "Accept failed : " << WSAGetLastError() << "\n";;
shutdown(Sock,SD_BOTH);
closesocket(Sock);
Sock = INVALID_SOCKET;
return false;
}
sprintf(IpClient,"%i.%i.%i.%i",aSock->sin.sin_addr.S_un.S_un_b.s_b1,aSock->sin.sin_addr.S_un.S_un_b.s_b2,aSock->sin.sin_addr.S_un.S_un_b.s_b3,aSock->sin.sin_addr.S_un.S_un_b.s_b4);
getnameinfo((sockaddr *)&aSock->sin, sizeof(sockaddr_in),HostNameClient,(strlen(HostNameClient) + 1), 0, 0, 0);
cout << "\nPreview demande par " << HostNameClient << " IP: " << IpClient << "" ;
sprintf(NomClient,HostNameClient);
return true;
}