[prog C++]Client/Serveur
stillfelil
Messages postés
135
Date d'inscription
Statut
Membre
Dernière intervention
-
stillfelil Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
stillfelil Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
Salut j'ai un problem avec la recuperation de l'ip du client
j'ai codé un programme Serveur en C++ Builder avec l'api win32
j'ai commencé par l'initialisation
WSADATA Wsa;
if(WSAStartup(MAKEWORD(1,1),&Wsa)!=0)
return 0;
int sk = socket(AF_INET,SOCk_STREAm,0);
//initialisation de SOCKADDR_IN
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.S_un.S_addr = INADDR_ANY;
bind(sk,(SOCKADDR*)&addr,sizeof(addr));
listen(sk,1);
SOCKADDR_IN *addr_rem;
int remote = accepte(sk,(SOCKADDR*)&addr_rem,NULL);
//ET LA YA UN PROBLEM en recuperant l'ip du client
char* ip = inet_addr(addr_rem->sin_addr);
//et la j'obtien la chaine "0.0.0.0"
alors si quelq'un connait le probleme ou une autre maniere ce serait sympa
;-)
j'ai codé un programme Serveur en C++ Builder avec l'api win32
j'ai commencé par l'initialisation
WSADATA Wsa;
if(WSAStartup(MAKEWORD(1,1),&Wsa)!=0)
return 0;
int sk = socket(AF_INET,SOCk_STREAm,0);
//initialisation de SOCKADDR_IN
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.S_un.S_addr = INADDR_ANY;
bind(sk,(SOCKADDR*)&addr,sizeof(addr));
listen(sk,1);
SOCKADDR_IN *addr_rem;
int remote = accepte(sk,(SOCKADDR*)&addr_rem,NULL);
//ET LA YA UN PROBLEM en recuperant l'ip du client
char* ip = inet_addr(addr_rem->sin_addr);
//et la j'obtien la chaine "0.0.0.0"
alors si quelq'un connait le probleme ou une autre maniere ce serait sympa
;-)
A voir également:
- [prog C++]Client/Serveur
- Cybera client - Télécharger - Divers Réseau & Wi-Fi
- Changer serveur dns - Guide
- Filezilla client - Télécharger - Téléchargement & Transfert
- Filezilla client ou serveur ✓ - Forum Réseau
- Formate pour taxer client frigo vide ✓ - Forum Matériel & Système
2 réponses
Salut,
Pour moi, il y a un problème sur cette ligne
Le dernier argument dans l'appel sert à passer la taille la structure pointée par
le second argument (paramètre en entrée/sortie). Mais je connais pas l'API
windows. Perso j'écrirai ça :
A+, crabs
Pour moi, il y a un problème sur cette ligne
int remote = accepte(sk,(SOCKADDR*)&addr_rem,NULL);
Le dernier argument dans l'appel sert à passer la taille la structure pointée par
le second argument (paramètre en entrée/sortie). Mais je connais pas l'API
windows. Perso j'écrirai ça :
int len = sizeof( SOCKADDR ) ; int remote = accept( sk, (SOCKADDR*)&addr_rem, &len ) ;
A+, crabs
oui je sais jai pas voulu recupéré la taille de la stucture
et une petite rectification au lieu de la fonction inet_addr il faut mettre inet_ntoa mais dans mon code je lé mi, en tous cas ca ne change rien au probleme j'arrive pas a récupéré mon addr_rem ca valeur est null
et comme tu disé c'est au niveau du accepte que ca se passe
et une petite rectification au lieu de la fonction inet_addr il faut mettre inet_ntoa mais dans mon code je lé mi, en tous cas ca ne change rien au probleme j'arrive pas a récupéré mon addr_rem ca valeur est null
et comme tu disé c'est au niveau du accepte que ca se passe