ITメモ
C言語 / Programming Language C




【C言語】[socket]  : ソケットの作成

【C言語】
[socket]  : ソケットの作成





[socket]コマンド

#include <sys/types.h>
#include <sys/socket.h>


int socket(int domain, int type, int protocol)
int closesocket(int socket)

socket - ソケットを作る。たとえるなら、壁にコンセントを設置するような事
TCPまたはUDP通信を行う場合に、OSにソケットの作成を依頼します。




戻り値

意味
ソケット記述子成功
-1失敗





[socket]コマンドのオプション

domain

AF_UNIX
PF_UNIX (AF_UNIX) ローカル通信
ホストマシン内。
パイプと同様のプロセス間通信
UNIXドメインの1ホスト内プロセス通信。ファイルシステムソケット。
PF_INET (AF_INET) IPv4 インターネット・プロトコル
インターネット(IPv4)を使ったプロセス間通信に使用可能
インターネット(INET)ドメインの2ホスト間プロセス通信(UNIXネットワークソケット)。
PF_INET6 (AF_INET6) IPv6 インターネット・プロトコル
インターネット(IPv6)を使ったプロセス間通信に使用可能
PF_APPLETALK (AF_APPLETALK) Apple Talk プロトコル
PF_IPX (AF_IPX) IPX - Novell プロトコル
PF_NS (AF_NS) XEROX NS プロトコル
PF_NETLINK (AF_NETLINK) カーネル・ユーザ・デバイス
AF_ISO ISO標準プロトコル
AF_NS Xerox Network Systemsプロトコル



type

SOCK_STREAM 順序性と信頼性があり、双方向のバイト・ストリームを提供します。コネクション型。
ストリープタイプのソケット
順番どおりにデータが送受信されることが保証される。
「SOCK_DGRAM」と比較すると、順番が保証される分、パフォーマンスが落ちる。
順次双方向バイトストリーム。コネクション型の信頼性が高い通信となります。
SOCK_DGRAM データグラム(信頼性無し、固定最大長メッセージ) を提供します。コネクションレス型。
データグラムタイプのソケット
確実にデータが送信されたか、順番についての保証がない代わりに、比較するとパフォーマンスがよくなる。毎回送信先、受信元を指定する必要がある。
データグラム。ベストエフォート型の通信となります。
SOCK_ROW 生(直接IPを用いた通信)のネットワーク・プロトコルへのアクセスを提供
直接IPを用いた通信を行なう



protocol

IPPROTO_IP 0 デフォルトのプロトコルを使用
自動設定(AF_INET&SOCK_RAWでIPを直接扱いたい場合も含む)
IPPROTO_ICMP control message protocol -
IPPROTO_TCP TCP TCP/IP(AF_INET&SOCK_STREAMの場合。0も可。)
IPPROTO_UDP UDP UDP/IP(AF_INET&SOCK_DGRAMの場合。0も可。)
IPPROTO_IPV6 IPv6 -
IPPROTO_RAW ICMP ICMP