#include <sys.socket.h>
#include <netinet.in.h> /* nur bei AF_INET und AF_INET6 */
#include <iso.h> /* nur bei AF_ISO */
Kernighan-Ritchie-C:
int getpeername(s, name, namelen);
int s;
int *namelen;
struct sockaddr_in *name; /* nur bei AF_INET */
struct sockaddr_in6 *name; /* nur bei AF_INET6 */
struct sockaddr_iso *name; /* nur bei AF_ISO */
ANSI-C:
int getpeername(int s, struct sockaddr* name, int* namelen);
Beschreibung
Die Funktion getpeername() liefert im Parameter name den Namen des Kommunikationspartners, der mit dem Socket s verbunden ist.
name zeigt auf einen Speicherbereich. *name enthält nach erfolgreicher Ausführung von getpeername() den Namen (die Adresse) des Kommunikationspartners.
Die Integer-Variable, auf die der Parameter namelen zeigt, muss vor Aufruf von getpeername() mit der maximal möglichen Adresslänge (angegeben in Bytes) versorgt werden. Bei Rückkehr der Funktion enthält *namelen die aktuelle Größe (in Bytes) des zurückgelieferten Namens.
Returnwert
0:
bei Erfolg
-1:
bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.
Fehleranzeige durch errno
EBADF
Der Parameter s ist kein gültiger Deskriptor.
EFAULT
Die Länge des Bereichs für die Aufnahme der Adresse ist zu klein.
ENOBUFS
Es gibt nicht genug Speicherplatz im Puffer.
ENOTCONN
Der Socket hat keine Verbindung.
EOPNOTSUPP
Der Socket s ist nicht vom Typ SOCK_STREAM. Die Operation wird für den Socket-Typ von s nicht unterstützt.
Siehe auch
accept(), bind(), getsockname(), socket()