Je connais pas xinet.d mais il semble que ton descripteur de socket soit renvoye par dup().
Donc, je vois pas trop ce qu'il te manque pour appeler ca :
int getpeername(maSocket, struct sockaddr *name, socklen_t *namelen);
Si c'est la definition de sockaddr, elle se trouve dans <sys/socket.h> je crois.
Ensuite tu declare dans ton code :
struct sockaddr_in son_adresse;
Et tu donne a la fonction getpeername ce qu'elle veut : un pointeur sur un structure sockaddr.
int result = getpeername(maSocket, (struct sockaddr *) son_adresse, sizeof(struct sockaddr));
Si result est different de -1 alors son_adresse contient les informations que tu veux sur le client distant.
J'espere que ca t'aide, et que le code est bon (j'ai pas teste).
Partager