Programación General => C/C++ => Mensaje iniciado por: betitono1 en Martes 3 de Febrero de 2004, 16:18
Título: Informacion Del Cliente Socket
Publicado por: betitono1 en Martes 3 de Febrero de 2004, 16:18
Hola que tal alguien podira decirme como tomar informacion del cliente socket cuando se conecta al socket servidor, informacion como por ejemplo de la IP del cliente, nombre de la maquina y cosas asi.
Saludos.
Título: Re: Informacion Del Cliente Socket
Publicado por: Ruben3d en Martes 3 de Febrero de 2004, 18:48
Hola.
Por tu pregunta deduzco que tienes el código de un servidor y que, cuando aceptas una conexión, quieres saber desde qué dirección IP viene y qué puerto.
Si te fijas, la sintaxis de accept (para aceptar conexiones entrantes por TCP) es:
Código: Text
int accept(int s, struct sockaddr *sa, int *addrlen);
Para aceptar una conexión se haría así:
Código: Text
struct sockaddr_in sa;
int size_sa = sizeof(sa);
int cliente = accept(mi_socket_tcp, (struct sockaddr *) &sa, &size_sa);
Después de esto, en cliente tendrías el descriptor de la conexión que acabas de hacer y en sa tendrías la dirección IP y el puerto de donde proviene.
Para obtener los valores del struct, que estarán en el formato de la red, se hace así: