getsockname-Funktion (winsock2.h)
Die getockname-Funktion ruft den lokalen Namen für einen Socket ab.
Syntax
int WSAAPI 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 |
---|---|
Vor der Verwendung dieser API muss ein erfolgreicher WSAStartup-Aufruf erfolgen. | |
Beim Netzwerksubsystem ist ein Fehler aufgetreten. | |
Der Name oder der namelen-Parameter ist kein gültiger Teil des Benutzeradressraums, oder der namelen-Parameter ist zu klein. | |
Ein blockierter Windows Sockets 1.1-Aufruf wird ausgeführt, oder der Dienstanbieter verarbeitet weiterhin eine Rückruffunktion. | |
Der Deskriptor ist kein Socket. | |
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 | winsock2.h (einschließlich Winsock2.h) |
Bibliothek | Ws2_32.lib |
DLL | Ws2_32.dll |