names=new,open
visibility=public
kind=defined

--- open(domain, type, protocol=0) -> Socket
--- new(domain, type, protocol=0) -> Socket

新しいソケットを生成します。domain、type、
protocol はインクルードファイルにある定数で指定しま
す。ほとんどの定数は Socket::AF_INET のように
Socket クラスの定数として定義されています。domain
とtype に関しては、"AF_INET",
"SOCK_STREAM" のように文字列でも指定できますが、文
字列ですべての機能を指定できる保証はありません。

例えば、IPv4 の TCP ソケットは以下のように生成されます。

  s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)

なお、[[man:socket(2)]] の domain 引数において AF_ と PF_ のどちらの定数を使用するかについては混乱がありますが、
Stevens の「UNIX ネットワークプログラミング第2版 Vol.1」4.2節に述べられているように、
現実的にはどちらでも問題なく、また、既存のコーディング習慣として AF_ が用いられることが多いため、
ここでは AF_ を使用しています。

@param domain 例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
@param type   例えば、<sys/socket.h> のようなインクルードファイルに定義されている定数を指定します。
@param protocol プロトコルに使用する数値を指定します。

