FrontPage > C/C++ > socket

socket

説明

ソケット生成します。

インクルード

#include <sys/socket.h>

#include <sys/types.h> /* BSD系のAPIで必要な場合有り */

書式

int socket (int socket_family, int socket_type, int protocol);

第1引数 : ソケット・ファミリ(socket_family)
第2引数 : ソケット・タイプ(socket_type)
第3引数 : 使用する固有のプロトコル指定(protocol) 通常は、「0」

戻り値  : (ファイル)ディスクリプター

ソケット・ファミリ(socket_family)

PF:プロトコール・ファミリ(Protocol Family)

PF_UNSPEC0Unspecified.
PF_LOCAL1Local to host (pipes and file-domain).
PF_UNIX1 (PF_LOCAL)Old BSD name for PF_LOCAL.
PF_FILE1 (PF_LOCAL)Another non-standard name for PF_LOCAL.
PF_INET2IP protocol family (IP version 4).
PF_AX253Amateur Radio AX.25.
PF_IPX4Novell Internet Protocol.
PF_APPLETALK5Appletalk DDP.
PF_NETROM6Amateur radio NetROM.
PF_BRIDGE7Multiprotocol bridge.
PF_ATMPVC8ATM PVCs.
PF_X259Reserved for X.25 project.
PF_INET610IP version 6.
PF_ROSE11Amateur Radio X.25 PLP.
PF_DECnet12Reserved for DECnet project.
PF_NETBEUI13Reserved for 802.2LLC project.
PF_SECURITY14Security callback pseudo AF.
PF_KEY15PF_PF_KEY key management API.
PF_NETLINK16Alias to emulate 4.4BSD.
PF_ROUTE16 (PF_NETLINK)Alias to emulate 4.4BSD.
PF_PACKET17Packet family.
PF_ASH18Ash.
PF_ECONET19Packet family.
PF_ATMSVC20ATM SVCs.
PF_SNA22Linux SNA Project
PF_IRDA23IRDA sockets.
PF_PPPOX24PPPoX sockets.
PF_WANPIPE25Wanpipe API sockets.
PF_BLUETOOTH31Bluetooth sockets.
PF_MAX32For now..

※「/usr/include/bits/socket.hより抜粋」

AF:アドレス・ファミリ(Address Family)

※引数1には、「AF_*」が使用される。

AF_UNSPEC0:PF_UNSPEC指定なし(IPv4,IPv6両方対応時などに使用)
AF_LOCAL1:PF_LOCALローカル通信
AF_UNIX1:PF_UNIXローカル通信
AF_FILE1:PF_FILEファイル
AF_INET2:PF_INETIPv4 インターネット・プロトコル(IP/TCP/UDP)
AF_AX253:PF_AX25アマチュア無線 AX.25 プロトコル
AF_IPX4:PF_IPXIPX - Novell プロトコル
AF_APPLETALK5:PF_APPLETALKアップルトーク
AF_NETROM6:PF_NETROMNetRomプロトコール
AF_BRIDGE7:PF_BRIDGE
AF_ATMPVC8:PF_ATMPVC生ATM PVCにアクセス
AF_X259:PF_X25ITU-T X.25 / ISO-8208 プロトコル
AF_INET610:PF_INET6IPv6 インターネット・プロトコル
AF_ROSE11:PF_ROSERoseプロトコール
AF_DECnet12:PF_DECnet
AF_NETBEUI13:PF_NETBEUINet BIOSプロトコル
AF_SECURITY14:PF_SECURITY
AF_KEY15:PF_KEYキーソケット
AF_NETLINK16:PF_NETLINKカーネル・ユーザ・デバイス
AF_ROUTE16:PF_ROUTE経路制御プロトコル
AF_PACKET17:PF_PACKET低レベルのパケットインターフェース
AF_ASH18:PF_ASH
AF_ECONET19:PF_ECONET
AF_ATMSVC20:PF_ATMSVC
AF_SNA22:PF_SNAIBM SNA
AF_IRDA23:PF_IRDA
AF_PPPOX24:PF_PPPOXPPPoE/PPPoA/PPPoEoA ...他
AF_WANPIPE26:PF_WANPIPE
AF_BLUETOOTH31:PF_BLUETOOTH
AF_MAX32:PF_MAX

※「/usr/include/bits/socket.hより抜粋」
※「winsock」には他のプロトコールの記載も模様。(参考:Geekなぺーじ : アドレスファミリ)

ソケット・タイプ(socket_type)

SOCK_STREAM1ストリーム用(TCP) [信頼性あり]
SOCK_DGRAM2データグラム用(UDP) [信頼性なし]
SOCK_RAW3生通信プロトコールへのアクセス用
SOCK_RDM4データグラム用 [信頼性あり]
SOCK_SEQPACKET5UNIXドメイン用(AF_LOCAL, AF_FILE)
SOCK_PACKET10現在は使用されていない

※「/usr/include/bits/socket.hより抜粋」

プロトコール(protocol)

デフォルト「0」

サンプル

int fdServerSocket = 0;

/* TCP IPv4でストリーム型のソケットを作成 */
fdServerSocket = socket (AF_INET, SOCK_STREAM, 0);
if (fdServerSocket < 0){
    perror("socket error");
    exit(-1);
}

関連項目


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-01-03 (土) 20:37:49