getpeername(2)

NOMBRE
getpeername - obtiene el nombre del conector en el otro extremo

BIBLIOTECA
Biblioteca Estándar C (libc, -lc)

SINOPSIS
#include <sys/socket.h>

int getpeername(int sockfd, struct sockaddr *restrict addr,
                socklen_t *restrict addrlen);

DESCRIPCIÓN
getpeername() retornará la dirección del par conectado al socket sockfd, en el búfer que apunta addr. El argumento addrlen debe inicializarse para indicar la cantidad de espacio apuntado por addr. Al devolver, contiene el tamaño real del nombre devuelto (en bytes). El nombre se trunca si el búfer proporcionado es demasiado pequeño.

La dirección devuelta se trunca si el tamaño del búfer indicado es demasiado pequeño; en este caso, addrlen devolverá un valor mayor que el proporcionado a la llamada.

VALOR DEVUELTO
En caso de éxito se devuelve cero. En caso de error se devuelve -1, y errno se configura para indicar el error.

ERRORES

EBADF
    El argumento sockfd no es un descriptor de archivo válido.

EFAULT
    El parámetro addr apunta a memoria que no está en una zona válida del espacio de direcciones del proceso.

EINVAL
    addrlen es inválido (por ejemplo: tiene valor negativo).

ENOBUFS
    Insuficientes recursos disponibles para realizar la operación.

ENOTCONN
    El conector no está conectado.

ENOTSOCK
    El descriptor de archivo sockfd no se refiere a un conector.

ESTÁNDARES
POSIX.1-2024.

HISTORIAL
POSIX.1-2001, SVr4, 4.4BSD (apareció por primera vez en 4.2BSD).

NOTAS
Para los sockets de flujo, una vez ejecutada una instrucción connect(2), cualquiera de los sockets puede llamar a getpeername() para obtener la dirección del socket parejo. Por otro lado, los sockets de datagrama no requieren conexión. Llamar a connect(2) en un socket de datagrama simplemente establece la dirección del par para los datagramas salientes enviados con write(2) o recv(2). Quien llama a connect(2) puede usar getpeername() para obtener la dirección del par que previamente estableció para el socket. Sin embargo, el socket del par no dispone de esta información e invocar a getpeername() en él no devolverá información útil (a menos que también se haya ejecutado una llamada a connect(2) en el par). Tenga en cuenta también que el receptor de un datagrama puede obtener la dirección del emisor al usar recvfrom(2).

VÉASE TAMBIÉN
accept(2), bind(2), getsockname(2), ip(7), socket(7), unix(7)

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García <gerardo.aburruzaga@uca.es>, Juan Piernas <piernas@ditec.um.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.