HTTP Client の動作フロー その3 : socket() でソケットを開く
socket()の書式
#include <sys/types.h> /* 移植性を考慮する際は必要 */ #include <sys/socket.h> int socket(int domain, int type, int protocol);
socket() は通信のための端点(endpoint)を作成し、ディスクリプター(descriptor)を返す。
成功した場合、新しいソケットのファイル・ディスクリプターを返す。 エラーが発生した場合は -1 を返し、 errno を適切に設定する。
ソケットのタイプ
typeには、通信方式(semantics)を指定する。
プロトコル
protocol はソケットによって使用される固有のプロトコルを指定する。通常それぞれの ソケットは、与えられたプロトコル・ファミリの種類ごとに一つのプロトコルのみを サポートする。 その場合は protocol に 0 を指定できる。
プロトコル・ファミリ/タイプ/プロトコル 対応表
僕の理解ではこんな感じ。
プロトコル・ファミリ | タイプ | プロトコル | 使用されるプロトコル名 |
---|---|---|---|
AF_INET | SOCK_STREAM | 0 | TCP/IP |
AF_INET | SOCK_DGRAM | 0 | UDP/IP |
例
ソケットの閉じ方
close(sfd); //sfdはsoket()が返したファイル・ディスクリプター
疑問
というか、ソケットってそもそもなんだ??
明日調べてみることにする。