Die folgende Übersicht über die Funktionen der SOCKETS(BS2000)-Schnittstelle fasst jeweils mehrere Funktionen unter aufgabenorientierten Gesichtspunkten zusammen.
In den drei rechten Spalten „INET“, „INET6“ und „ISO“ wird angezeigt, in welcher Adressfamilie (AF_INET, AF_INET6, AF_ISO) die betreffende Funktion unterstützt wird.
Verbindungen über Sockets aufbauen und beenden
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
socket() | Socket erzeugen | x | x | x | |
bind() | einem Socket einen Namen zuordnen | x | x | x | |
connect() | Kommunikation über einen Socket initiieren (z.B. durch einen Client) | x | x | x | |
listen() | Socket auf anstehende Verbindungen überprüfen (z.B. durch einen Server) | x | x | x | |
accept() | Verbindung über einen Socket annehmen | x | x | x | |
shutdown() | Verbindung in Lese- und/oder Schreibrichtung schließen | x | x | ||
soc_close() | Socket schließen | x | x | x |
Daten zwischen zwei Sockets übertragen
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
soc_read(), | Nachricht von einem Socket über eine aufgebaute Verbindung empfangen | "soc_read(), soc_readv() (read, readv) - Nachricht von einem Socket empfangen" | x | x | x |
recv() | Nachricht von einem Socket über eine aufgebaute Verbindung empfangen | x | x | x | |
recvfrom() | Nachricht von einem Socket empfangen | x | x | x | |
recvmsg() | Nachricht von einem Socket empfangen. | x | x | x | |
send() | Nachricht von Socket zu Socket über eine aufgebaute Verbindung senden | x | x | x | |
sendto() | Nachricht von Socket zu Socket senden | x | x | x | |
sendmsg() | Nachricht von Socket zu Socket senden. | x | x | x | |
soc_write(), | Nachricht von Socket zu Socket über eine aufgebaute Verbindung senden | "soc_write(), soc_writev() (write, writev) - Nachricht von Socket zu Socket senden" | x | x | x |
select() | Ein-/Ausgabe multiplexen | x | x | x | |
soc_poll() | Ein-/Ausgabe multiplexen | x | x | x |
Daten vom/zum Socket-Puffer übertragen
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
soc_getc() | Zeichen aus dem Socket-Puffer lesen | x | x | ||
soc_gets() | Character-String aus dem Socket-Puffer lesen | "soc_gets() (gets) - Character-String aus dem Eingabepuffer lesen" | x | x | |
soc_putc() | Zeichen in den Socket-Puffer schreiben | "soc_putc() (putc) - Zeichen in den Ausgabepuffer schreiben" | x | x | |
soc_puts() | Character-String in den Socket-Puffer schreiben | "soc_puts() (puts) - Character-String in den Ausgabepuffer schreiben" | x | x | |
soc_flush() | Socket-Puffer leeren | x | x |
Informationen über Sockets erhalten
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
getdtablesize() | Größe der Deskriptorentabelle abfragen | x | x | x | |
getsockopt() | Socket-Optionen abfragen | "getsockopt(), setsockopt() - Socket-Optionen abfragen und ändern" | x | x | x |
setsockopt() | Socket-Optionen setzen | "getsockopt(), setsockopt() - Socket-Optionen abfragen und ändern" | x | x | x |
getpeername() | Namen des Kommunikationspartners abfragen | "getpeername() - Remote-Adresse der Sockets-Verbindung abfragen" | x | x | x |
getsockname() | Namen des Sockets abfragen | "getsockname() - Local-Adresse der Sockets-Verbindung abfragen" | x | x | x |
Konfigurationswerte überprüfen
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
getaddrinfo() | die zu einem Rechner- und/oder Service-Namen korrespondierenden IP-Adressen und Portnummern abfragen | x | x | ||
gai_strerror() | Beschreibung eines getaddrinfo()-Error-Codes abfragen | "gai_strerror() - Textausgabe für den Error-Code von getaddrinfo()" | x | x | |
getbcamhost() | BCAM-Hostnamen abfragen | x | |||
gethostname() | Socket-Hostnamen des aktuellen Rechners abfragen | x | x | x | |
gethostbyaddr() | den zu einer IPv4-Adresse gehörenden Rechnernamen abfragen | "gethostbyaddr(), gethostbyname() - Informationen über Rechnernamen und -adressen abfragen" | x | ||
gethostbyname() | die zu einem Rechnernamen gehörende IPv4-Adresse abfragen | "gethostbyaddr(), gethostbyname() - Informationen über Rechnernamen und -adressen abfragen" | x | ||
getipnodebyaddr() | den zu einer IPv4- oder IPv6-Adresse gehörenden Rechnernamen abfragen | x | x | ||
getipnodebyname() | die zu einem Rechnernamen gehörende IPv4- oder IPv6-Adresse abfragen | x | x | ||
getnameinfo() | die zu IP-Adresse und Portnummer korrespondierenden Rechner- und Service-Namen abfragen | x | x | ||
getservbyport() | Namen eines Service abfragen | "getservbyname(), getservbyport() - Informationen über Services abfragen" | x | x | |
getservbyname() | Portnummer eines Service abfragen | "getservbyname(), getservbyport() - Informationen über Services abfragen" | x | x | |
getprotobyname() | Nummer eines Protokolls abfragen | x | x | ||
if_nameindex() | Liste mit Interface-Namen und -Index des lokalen Rechners | "if_nameindex() - Liste von Interface-Namen mit dem dazugehörigen Interface-Index erzeugen" | x | x |
Internet-Adresse manipulieren
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
inet_addr() | Zeichenkette von Punktschreibweise in ganzzahligen Wert konvertieren (Internetadresse) | x | |||
inet_network() | Zeichenkette von Punktschreibweise in ganzzahligen Wert konvertieren (Subnetz-Anteil) | x | |||
inet_makeaddr() | Internet-Adresse erstellen aus Subnetz-Anteil und subnetz-lokalem Adressteil | x | |||
inet_lnaof() | aus der Internet-Rechneradresse die lokale Netzadresse in der Byte-Reihenfolge des Rechners extrahieren | x | |||
inet_netof() | aus der Internet-Rechneradresse die Netznummer in der Byte-Reihenfolge des Rechners extrahieren | x | |||
inet_ntoa() | Internet-Rechneradresse in eine Zeichenkette gemäß der üblichen Internet-Punktschreibweise konvertieren | x | |||
inet_pton() | Konvertiert
in die entsprechende binäre Adresse. | x | x | ||
inet_ntop() | Konvertiert eine binäre IPv4-oder IPv6-Adresse in die entsprechende
| x | x |
Hilfsfunktionen
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
freeaddrinfo() | Speicherbereich für addrinfo-Struktur freigeben, der von der Funktion getaddrinfo() angefordert wurde. | x | x | ||
freehostent() | Speicherbereich für hostent-Struktur freigeben, der von den Funktionen getipnodebyaddr() und getipnodebyname() angefordert wurde. | x | x | ||
if_freenameindex() | Speicherbereich für Array mit if_nameindex() Struktur(en) freigeben, der von der Funktion if_nameindex() angefordert wurde. | "if_freenameindex() - Den durch if_nameindex() belegten dynamischen Speicher freigeben" | x | x | |
htonl() | 32 bit große Felder | x | |||
htons() | 16 bit große Felder | x | x | ||
if_indextoname() | Zum Index den korrespondierenden Namen ermitteln | "if_indextoname() - Interface-Index auf Interface-Namen umsetzen" | x | x | |
if_nametoindex() | Zum Namen den korrespondierenden Index ermitteln | "if_nametoindex() - Interface-Name auf Interface-Index umsetzen" | x | x | |
ntohl() | 32 bit große Felder | x | |||
ntohs() | 16 bit große Felder | x | x |
Steuerfunktionen
Funktion | Beschreibung | siehe | INET | INET6 | ISO |
soc_ioctl() | Sockets steuern | x | x | x | |
soc_wake() | eine mit select() oder soc_poll() wartende Task wecken | "soc_wake() - Eine mit select() oder soc-poll() wartende Task wecken" | x | x | x |
Testmakros für AF_INET6
Die folgenden Testmakros sind in <netinet.in.h> definiert:
Makro | Test |
IN6_IS_ADDR_UNSPECIFIED | Adresse = 0 ? |
IN6_IS_ADDR_LOOPBACK | Adresse = Loopback ? |
IN6_IS_ADDR_LINKLOCAL | Adresse = IPv6 - LINKLOCAL ? |
IN6_IS_ADDR_SITELOCAL | Adresse = IPv6 - SITELOCAL ? |
IN6_ADDR_V4COMPAT | Adresse = IPv4-kompatibel ? |
IN6_ADDR_V4MAPPED | Adresse = IPv4-mapped |
IN6_ARE_ADDR_EQUAL | Adresse1 = Adresse2 ? |