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 |
---|---|
Debe producirse una llamada de WSAStartup correcta antes de usar esta API. | |
Error en el subsistema de red. | |
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. | |
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. | |
El descriptor no es un socket. | |
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 |