Unixソケット-まとめ

これは、ソケットプログラミングに関連するすべての機能のリストです。

ポートおよびサービス機能

Unixには、/ etc / servicesファイルからサービス名をフェッチするための次の関数が用意されています。

  • struct servent *getservbyname(char *name, char *proto) −この呼び出しは、サービス名とプロトコル名を受け取り、そのサービスに対応するポート番号を返します。

  • struct servent *getservbyport(int port, char *proto) −この呼び出しは、ポート番号とプロトコル名を受け取り、対応するサービス名を返します。

バイト順序関数

  • unsigned short htons (unsigned short hostshort) −この関数は、16ビット(2バイト)の量をホストバイトオーダーからネットワークバイトオーダーに変換します。

  • unsigned long htonl (unsigned long hostlong) −この関数は、32ビット(4バイト)の量をホストバイトオーダーからネットワークバイトオーダーに変換します。

  • unsigned short ntohs (unsigned short netshort) −この関数は、16ビット(2バイト)の量をネットワークバイトオーダーからホストバイトオーダーに変換します。

  • unsigned long ntohl (unsigned long netlong) −この関数は、32ビット量をネットワークバイトオーダーからホストバイトオーダーに変換します。

IPアドレス機能

  • int inet_aton (const char *strptr, struct in_addr *addrptr)−この関数呼び出しは、インターネット標準のドット表記で指定された文字列をネットワークアドレスに変換し、提供された構造体にアドレスを格納します。変換されたアドレスは、ネットワークバイトオーダー(左から右に並べられたバイト)になります。文字列が有効な場合は1を返し、エラーの場合は0を返します。

  • in_addr_t inet_addr (const char *strptr)−この関数呼び出しは、インターネット標準のドット表記で指定された文字列を、インターネットアドレスとして使用するのに適した整数値に変換します。変換されたアドレスは、ネットワークバイトオーダー(左から右に並べられたバイト)になります。エラーの場合、32ビットのバイナリネットワークバイトオーダーのIPv4アドレスとINADDR_NONEを返します。

  • char *inet_ntoa (struct in_addr inaddr) −この関数呼び出しは、指定されたインターネットホストアドレスをインターネット標準ドット表記の文字列に変換します。

ソケットコア機能

  • int socket (int family, int type, int protocol) −この呼び出しは、後のシステムコールで使用できるソケット記述子を返すか、エラー時に-1を返します。

  • int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)−接続機能は、TCPクライアントがTCPサーバーとの接続を確立するために使用します。この呼び出しは、サーバーに正常に接続した場合は0を返し、それ以外の場合は-1を返します。

  • int bind(int sockfd, struct sockaddr *my_addr,int addrlen)−バインド関数は、ローカルプロトコルアドレスをソケットに割り当てます。この呼び出しは、アドレスに正常にバインドされた場合は0を返し、それ以外の場合は-1を返します。

  • int listen(int sockfd, int backlog)− listen関数は、クライアント要求をリッスンするためにTCPサーバーによってのみ呼び出されます。この呼び出しは、成功すると0を返し、それ以外の場合は-1を返します。

  • int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)− accept関数は、クライアント要求を受け入れ、実際の接続を確立するためにTCPサーバーによって呼び出されます。この呼び出しは、成功すると非負の記述子を返します。それ以外の場合は-1を返します。

  • int send(int sockfd, const void *msg, int len, int flags)−送信機能は、ストリームソケットまたはCONNECTEDデータグラムソケットを介してデータを送信するために使用されます。この呼び出しは、送信されたバイト数を返します。それ以外の場合は、-1を返します。

  • int recv (int sockfd, void *buf, int len, unsigned int flags)− recv関数は、ストリームソケットまたはCONNECTEDデータグラムソケットを介してデータを受信するために使用されます。この呼び出しは、バッファに読み込まれたバイト数を返します。それ以外の場合は、エラー時に-1を返します。

  • int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)− sendto関数は、UNCONNECTEDデータグラムソケットを介してデータを送信するために使用されます。この呼び出しは、送信されたバイト数を返します。それ以外の場合は、エラー時に-1を返します。

  • int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)− recvfrom関数は、UNCONNECTEDデータグラムソケットからデータを受信するために使用されます。この呼び出しは、バッファに読み込まれたバイト数を返します。それ以外の場合は、エラー時に-1を返します。

  • int close (int sockfd)−クローズ機能は、クライアントとサーバー間の通信を閉じるために使用されます。この呼び出しは、成功すると0を返し、それ以外の場合は-1を返します。

  • int shutdown (int sockfd, int how)−シャットダウン機能は、クライアントとサーバー間の通信を正常に閉じるために使用されます。この関数は、閉じる関数と比較してより多くの制御を提供します。成功した場合は0を返し、それ以外の場合は-1を返します。

  • int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) −この関数は、複数のソケットの読み取りまたは書き込みに使用されます。

ソケットヘルパー機能

  • int write (int fildes, const void *buf, int nbyte)−書き込み関数は、bufが指すバッファーから開いているファイル記述子fildesに関連付けられたファイルにnバイトバイトを書き込もうとします。正常に完了すると、write()は、ファイルに関連付けられたファイルに実際に書き込まれたバイト数を返します。この数がnbyteを超えることはありません。それ以外の場合は、-1が返されます。

  • int read (int fildes, const void *buf, int nbyte)−読み取り関数は、開いているファイル記述子fildesに関連付けられているファイルから、bufが指すバッファーにnbyteバイトを読み取ろうとします。正常に完了すると、write()は、ファイルに関連付けられたファイルに実際に書き込まれたバイト数を返します。この数がnbyteを超えることはありません。それ以外の場合は、-1が返されます。

  • int fork (void)−fork関数は新しいプロセスを作成します。子プロセスと呼ばれる新しいプロセスは、呼び出し元のプロセス(親プロセス)の正確なコピーになります。

  • void bzero (void *s, int nbyte)− bzero関数は、文字列sにnbyteのnullバイトを配置します。この関数は、すべてのソケット構造をnull値に設定するために使用されます。

  • int bcmp (const void *s1, const void *s2, int nbyte)− bcmp関数は、バイト文字列s1をバイト文字列s2と比較します。両方の文字列はnbyteバイト長であると想定されています。

  • void bcopy (const void *s1, void *s2, int nbyte)− bcopy関数は、文字列s1から文字列s2にnbyteバイトをコピーします。重複する文字列は正しく処理されます。

  • void *memset(void *s, int c, int nbyte) − memset関数は、bzeroと同じ方法で構造変数を設定するためにも使用されます。