begin process at 2012 02 10 08:48:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

socket getnameinfo


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

socket getnameinfo

mercredi 27 octobre 2004 à 10:59:59 | socket getnameinfo

c2millet

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;
}
mercredi 27 octobre 2004 à 12:01:28 | Re : socket getnameinfo

c2millet

g trouvé pkoi si ça interesse qqun voila :
getnameinfo((sockaddr *)&aSock->sin, sizeof(sockaddr_in),HostNameClient,(strlen(HostNameClient)-1 ), 0, 0, 0);

Cmill
mercredi 27 octobre 2004 à 12:59:40 | Re : socket getnameinfo

AlexMAN

Membre Club
et un simple strlen, ca n'irait pas mieux ? Pasken faisant ton -1, tu bouffes le dernier caractere de la chaine, car strlen ne tient pas compte du zero final...
mercredi 27 octobre 2004 à 13:29:48 | Re : socket getnameinfo

c2millet

je c bien mais quand je fais ça ........ ça marche +
Bizard non?
Cmill
mercredi 27 octobre 2004 à 13:40:28 | Re : socket getnameinfo

aardman

Membre Club
Salut,
Le 4eme param de getnameinfo est la taille du buffer que tu passes en 3eme param...
Utiliser strlen ici n'a aucun sens car HostNameClient ne contient surement pas une chaine valide
mercredi 27 octobre 2004 à 13:47:04 | Re : socket getnameinfo

c2millet

alors que dois je lui passer
Cmill
mercredi 27 octobre 2004 à 13:50:58 | Re : socket getnameinfo

AlexMAN

Membre Club
sizeof(HostNameClient);
mercredi 27 octobre 2004 à 13:56:54 | Re : socket getnameinfo

aardman

Membre Club
Salut,
sizeof si c'est un tableau et pas un pointeur, sinon on peut aussi coder la valeur en dur.
mercredi 27 octobre 2004 à 14:16:27 | Re : socket getnameinfo

c2millet

ok
merci c vrai que g pas chercher plus loin que le bout de nez sur ce coup. Mais bon on va mettre ça sur le dos de la fatigue......

Sinon, sur win2000 le getnameinfo me retourne bien le nom du pc client alors que sous xp il me donne l'ip. tu c pourquoi?


Cmill
mercredi 27 octobre 2004 à 14:39:41 | Re : socket getnameinfo

aardman

Membre Club
Salut,
Faut voir avec les flags (dernier param)


Cette discussion est classée dans : socket, sin, asock, hostnameclient, getnameinfo


Répondre à ce message

Sujets en rapport avec ce message

Probleme sockets de mer** [ par zzzzzz ] bé je suis plus quoi faire j'en suis toujours au meme prob y'en a 1 qui me dit d'utiliser strstr() l'autre strcmp() fin bref ca serrais sympas si quel Probleme de Client Serveur [ par Krox68 ] voila jaimerais faire un programme client qui puisse se connecter a ce serveur : #include void main(){ WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WS PROB SOCKETS CON [ par zzzzzz ] le code source marche mais quand je rajoute un cout#include #pragma comment(lib,"ws2_32.lib")#include int main(void) LERREUR QUI TUE §§§§§§§§§§§§§§§§ [ par Avalon10101 ] Vla jai fé mon prog tout é juste mais ya une erreur que je narrive vraiment pas à comprendre ! :C:\Documents and Settings\Alex\Mes documents\Makefile. pb socket [ par surfeurnet ] voici mon programme qui a pour l'instant pour unique but de se connecter à un serveur :# include # include # pragma comment (lib,"w32_32.lib")char ip, [SOCKET]Tjrs le pb de recuperation du buffer recv() [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur Socket, quand tu nous tiens ... [ par enthaz ] Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :D un coté j ai un logiciel client ki envoie "coucou" sur prob sock [ par epoc ] voilà, g commencé la prog des socks en vc++, mais rien ne transitte alors que la connexion semble être bien effectuée, voilà le code :**************** Probleme de sockets [ par MaDC ] J'ai fait ça, mais la reception ferme mon appli mfc sans raison... biens ur on ne reçoit rien... si qq1 pouvait m'éclairer se serait sympa de sa part TimeOut sur un socket [ par djosh ] Voici un bout de code des sources du logiciel VNC, la fonction connect(). Mon but est de réduire le temps de réponse (message:"failed to connect to se


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales