Compartir a través de


Función getsockname (winsock.h)

La función getsockname recupera el nombre local de un socket.

Sintaxis

int getsockname(
  [in]      SOCKET   s,
  [out]     sockaddr *name,
  [in, out] int      *namelen
);

Parámetros

[in] s

Descriptor que identifica un socket.

[out] name

Puntero a una estructura SOCKADDR que recibe la dirección (nombre) del socket.

[in, out] namelen

Tamaño del búfer de nombres , en bytes.

Valor devuelto

Si no se produce ningún error, getsockname devuelve cero. De lo contrario, se devuelve un valor de SOCKET_ERROR y se puede recuperar un código de error específico llamando a WSAGetLastError.

Código de error Significado
WSANOTINITIALISED
Debe producirse una llamada de WSAStartup correcta antes de usar esta API.
WSAENETDOWN
Error en el subsistema de red.
WSAEFAULT
El nombre o el parámetro namelen no es una parte válida del espacio de direcciones del usuario o el parámetro namelen es demasiado pequeño.
WSAEINPROGRESS
Una llamada de Bloqueo de Windows Sockets 1.1 está en curso o el proveedor de servicios sigue procesando una función de devolución de llamada.
WSAENOTSOCK
El descriptor no es un socket.
WSAEINVAL
El socket no se ha enlazado a una dirección con enlace o ADDR_ANY se especifica en el enlace , pero aún no se ha producido la conexión.

Comentarios

La función getsockname recupera el nombre actual del descriptor de socket especificado en nombre. Se usa en el socket enlazado o conectado especificado por el parámetro s . Se devuelve la asociación local. Esta llamada es especialmente útil cuando se ha realizado una llamada de conexión sin realizar primero un enlace ; La función getsockname proporciona la única manera de determinar la asociación local establecida por el sistema.

En la llamada, el parámetro namelen contiene el tamaño del búfer de nombres, en bytes. Cuando se devuelve, el parámetro namelen contiene el tamaño real en bytes del parámetro name .

La función getsockname no siempre devuelve información sobre la dirección de host cuando el socket se ha enlazado a una dirección no especificada, a menos que el socket se haya conectado con la conexión o aceptación (por ejemplo, mediante ADDR_ANY). Una aplicación de Windows Sockets no debe suponer que la dirección se especificará a menos que el socket esté conectado. La dirección que se usará para el socket es desconocida a menos que el socket esté conectado cuando se usa en un host de hospedaje múltiple. Si el socket usa un protocolo sin conexión, es posible que la dirección no esté disponible hasta que se produzca E/S en el socket.

Windows Phone 8: esta función es compatible con las aplicaciones de Windows Phone Store en Windows Phone 8 y versiones posteriores.

Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winsock.h (incluya Winsock2.h)
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

SOCKADDR

Funciones winsock

Referencia de Winsock

bind

getpeername

socket