|
|
|
|
[prog C++]Client/Serveur
Dernière réponse le 18 déc 2005 à 08:55:47 stillfelil, le 17 déc 2005 à 16:18:00Salut 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
;-)
Configuration: C++ Builder 5.0
Salut,
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 ..., I think Slackware sounds better than 'Microsoft,' -- Patrick Volkerding - founder and maintainer of Slackware |
Oui je sais jai pas voulu recupéré la taille de la stucture
|

