Unix Socket - Zusammenfassung

Hier finden Sie eine Liste aller Funktionen zur Socket-Programmierung.

Port- und Servicefunktionen

Unix bietet die folgenden Funktionen zum Abrufen des Dienstnamens aus der Datei / etc / services.

  • struct servent *getservbyname(char *name, char *proto) - Dieser Aufruf verwendet einen Dienstnamen und einen Protokollnamen und gibt die entsprechende Portnummer für diesen Dienst zurück.

  • struct servent *getservbyport(int port, char *proto) - Dieser Aufruf verwendet eine Portnummer und einen Protokollnamen und gibt den entsprechenden Dienstnamen zurück.

Byte-Bestellfunktionen

  • unsigned short htons (unsigned short hostshort) - Diese Funktion konvertiert 16-Bit-Mengen (2 Byte) von der Host-Byte-Reihenfolge in die Netzwerk-Byte-Reihenfolge.

  • unsigned long htonl (unsigned long hostlong) - Diese Funktion konvertiert 32-Bit-Mengen (4 Byte) von der Host-Byte-Reihenfolge in die Netzwerk-Byte-Reihenfolge.

  • unsigned short ntohs (unsigned short netshort) - Diese Funktion konvertiert 16-Bit-Mengen (2 Byte) von der Netzwerkbyte-Reihenfolge in die Host-Byte-Reihenfolge.

  • unsigned long ntohl (unsigned long netlong) - Diese Funktion konvertiert 32-Bit-Mengen von der Netzwerkbyte-Reihenfolge in die Host-Byte-Reihenfolge.

IP-Adressfunktionen

  • int inet_aton (const char *strptr, struct in_addr *addrptr)- Dieser Funktionsaufruf konvertiert die angegebene Zeichenfolge in der Internet-Standardpunktnotation in eine Netzwerkadresse und speichert die Adresse in der bereitgestellten Struktur. Die konvertierte Adresse befindet sich in der Reihenfolge der Netzwerkbytes (Bytes von links nach rechts). Es gibt 1 zurück, wenn die Zeichenfolge gültig ist, und 0 bei einem Fehler.

  • in_addr_t inet_addr (const char *strptr)- Dieser Funktionsaufruf konvertiert die angegebene Zeichenfolge in der Internet-Standardpunktnotation in einen ganzzahligen Wert, der zur Verwendung als Internetadresse geeignet ist. Die konvertierte Adresse befindet sich in der Reihenfolge der Netzwerkbytes (Bytes von links nach rechts). Es gibt eine geordnete 32-Bit-IPv4-Adresse mit binärem Netzwerkbyte und INADDR_NONE bei einem Fehler zurück.

  • char *inet_ntoa (struct in_addr inaddr) - Dieser Funktionsaufruf konvertiert die angegebene Internet-Host-Adresse in eine Zeichenfolge in der Internet-Standard-Punktnotation.

Socket Core-Funktionen

  • int socket (int family, int type, int protocol) - Dieser Aufruf gibt einen Socket-Deskriptor zurück, den Sie in späteren Systemaufrufen verwenden können, oder gibt bei einem Fehler -1 aus.

  • int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)- Die Verbindungsfunktion wird von einem TCP-Client verwendet, um eine Verbindung mit einem TCP-Server herzustellen. Dieser Aufruf gibt 0 zurück, wenn eine erfolgreiche Verbindung zum Server hergestellt wurde, andernfalls wird -1 zurückgegeben.

  • int bind(int sockfd, struct sockaddr *my_addr,int addrlen)- Die Bindefunktion weist einem Socket eine lokale Protokolladresse zu. Dieser Aufruf gibt 0 zurück, wenn er erfolgreich an die Adresse gebunden wurde, andernfalls -1.

  • int listen(int sockfd, int backlog)- Die Listen-Funktion wird nur von einem TCP-Server aufgerufen, um auf die Client-Anfrage zu warten. Dieser Aufruf gibt bei Erfolg 0 zurück, andernfalls -1.

  • int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)- Die Accept-Funktion wird von einem TCP-Server aufgerufen, um Client-Anfragen zu akzeptieren und eine tatsächliche Verbindung herzustellen. Dieser Aufruf gibt bei Erfolg einen nicht negativen Deskriptor zurück, andernfalls wird -1 zurückgegeben.

  • int send(int sockfd, const void *msg, int len, int flags)- Mit der Sendefunktion werden Daten über Stream-Sockets oder CONNECTED-Datagramm-Sockets gesendet. Dieser Aufruf gibt die Anzahl der gesendeten Bytes zurück, andernfalls -1.

  • int recv (int sockfd, void *buf, int len, unsigned int flags)- Die Recv-Funktion wird verwendet, um Daten über Stream-Sockets oder CONNECTED-Datagramm-Sockets zu empfangen. Dieser Aufruf gibt die Anzahl der in den Puffer gelesenen Bytes zurück, andernfalls wird bei einem Fehler -1 zurückgegeben.

  • int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)- Mit der Sendto-Funktion werden Daten über UNCONNECTED-Datagramm-Sockets gesendet. Dieser Aufruf gibt die Anzahl der gesendeten Bytes zurück, andernfalls wird bei einem Fehler -1 zurückgegeben.

  • int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)- Mit der Funktion recvfrom werden Daten von UNCONNECTED-Datagramm-Sockets empfangen. Dieser Aufruf gibt die Anzahl der in den Puffer gelesenen Bytes zurück, andernfalls wird bei einem Fehler -1 zurückgegeben.

  • int close (int sockfd)- Mit der Schließfunktion wird eine Kommunikation zwischen Client und Server geschlossen. Dieser Aufruf gibt bei Erfolg 0 zurück, andernfalls -1.

  • int shutdown (int sockfd, int how)- Mit der Funktion zum Herunterfahren wird eine Kommunikation zwischen Client und Server ordnungsgemäß geschlossen. Diese Funktion bietet mehr Kontrolle im Vergleich zur Schließfunktion. Bei Erfolg wird 0 zurückgegeben, andernfalls -1.

  • int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) - Mit dieser Funktion können Sie mehrere Sockets lesen oder schreiben.

Socket Helper-Funktionen

  • int write (int fildes, const void *buf, int nbyte)- Die Schreibfunktion versucht, n Byte-Bytes aus dem Puffer, auf den buf zeigt, in die Datei zu schreiben, die dem offenen Dateideskriptor fildes zugeordnet ist. Nach erfolgreichem Abschluss gibt write () die Anzahl der tatsächlich in die mit fildes verknüpften Dateien geschriebenen Bytes zurück. Diese Zahl ist niemals größer als nbyte. Andernfalls wird -1 zurückgegeben.

  • int read (int fildes, const void *buf, int nbyte)- Die Lesefunktion versucht, n Byte-Bytes aus der Datei, die dem offenen Dateideskriptor fildes zugeordnet ist, in den Puffer zu lesen, auf den buf zeigt. Nach erfolgreichem Abschluss gibt write () die Anzahl der tatsächlich in die mit fildes verknüpften Dateien geschriebenen Bytes zurück. Diese Zahl ist niemals größer als nbyte. Andernfalls wird -1 zurückgegeben.

  • int fork (void)- Die Gabelfunktion erstellt einen neuen Prozess. Der neue Prozess, der als untergeordneter Prozess bezeichnet wird, ist eine exakte Kopie des aufrufenden Prozesses (übergeordneter Prozess).

  • void bzero (void *s, int nbyte)- Die Funktion bzero platziert nbyte null Bytes in der Zeichenfolge s. Diese Funktion wird verwendet, um alle Socket-Strukturen mit Nullwerten festzulegen.

  • int bcmp (const void *s1, const void *s2, int nbyte)- Die Funktion bcmp vergleicht die Byte-Zeichenfolge s1 mit der Byte-Zeichenfolge s2. Es wird angenommen, dass beide Zeichenfolgen n Byte lang sind.

  • void bcopy (const void *s1, void *s2, int nbyte)- Die bcopy-Funktion kopiert nbyte Bytes von der Zeichenfolge s1 in die Zeichenfolge s2. Überlappende Zeichenfolgen werden korrekt behandelt.

  • void *memset(void *s, int c, int nbyte) - Die Memset-Funktion wird auch verwendet, um Strukturvariablen auf die gleiche Weise wie bzero festzulegen.