getsockname-Funktion (winsock.h)

Die getockname-Funktion ruft den lokalen Namen für einen Socket ab.

Syntax

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

Parameter

[in] s

Deskriptor, der einen Socket identifiziert.

[out] name

Zeiger auf eine SOCKADDR-Struktur , die die Adresse (Name) des Sockets empfängt.

[in, out] namelen

Größe des Namenspuffers in Bytes.

Rückgabewert

Wenn kein Fehler auftritt, gibt getsockname null zurück. Andernfalls wird der Wert SOCKET_ERROR zurückgegeben, und ein bestimmter Fehlercode kann durch Aufrufen von WSAGetLastError abgerufen werden.

Fehlercode Bedeutung
WSANOTINITIALISIERT
Vor der Verwendung dieser API muss ein erfolgreicher WSAStartup-Aufruf erfolgen.
WSAENETDOWN
Beim Netzwerksubsystem ist ein Fehler aufgetreten.
WSAEFAULT
Der Name oder der namelen-Parameter ist kein gültiger Teil des Benutzeradressraums, oder der namelen-Parameter ist zu klein.
WSAEINPROGRESS
Ein blockierter Windows Sockets 1.1-Aufruf wird ausgeführt, oder der Dienstanbieter verarbeitet weiterhin eine Rückruffunktion.
WSAENOTSOCK
Der Deskriptor ist kein Socket.
WSAEINVAL
Der Socket wurde nicht an eine Adresse mit Bindung gebunden, oder ADDR_ANY ist in bind angegeben, aber es ist noch keine Verbindung aufgetreten.

Hinweise

Die getockname-Funktion ruft den aktuellen Namen für den angegebenen Socketdeskriptor im Namen ab. Es wird für den gebundenen oder verbundenen Socket verwendet, der durch den s-Parameter angegeben wird. Die lokale Zuordnung wird zurückgegeben. Dieser Aufruf ist besonders nützlich, wenn ein Verbindungsaufruf erfolgt ist, ohne zuerst eine Bindung durchzuführen. die getockname-Funktion bietet die einzige Möglichkeit, die lokale Zuordnung zu bestimmen, die vom System festgelegt wurde.

Beim Aufruf enthält der namelen-Parameter die Größe des Namenspuffers in Bytes. Bei der Rückgabe enthält der namelen-Parameter die tatsächliche Größe des namensparameters in Bytes.

Die getockname-Funktion gibt nicht immer Informationen zur Hostadresse zurück, wenn der Socket an eine nicht angegebene Adresse gebunden wurde, es sei denn, der Socket wurde mit einer Verbindung verbunden oder akzeptiert (z. B. mithilfe von ADDR_ANY). Eine Windows Sockets-Anwendung darf nicht davon ausgehen, dass die Adresse angegeben wird, es sei denn, der Socket ist verbunden. Die Adresse, die für den Socket verwendet wird, ist unbekannt, es sei denn, der Socket ist verbunden, wenn er in einem mehrfach vernetzten Host verwendet wird. Wenn der Socket ein verbindungsloses Protokoll verwendet, ist die Adresse möglicherweise erst verfügbar, wenn E/A auf dem Socket erfolgt.

Windows Phone 8: Diese Funktion wird für Windows Phone Store-Apps auf Windows Phone 8 und höher unterstützt.

Windows 8.1 und Windows Server 2012 R2: Diese Funktion wird für Windows Store-Apps auf Windows 8.1, Windows Server 2012 R2 und höher unterstützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1, Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winsock.h (einschließlich Winsock2.h)
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

SOCKADDR

Winsock-Funktionen

Winsock-Referenz

bind

getpeername

Socket