open(domain, type, protocol=0) -> Socket
[permalink][rdoc][edit]new(domain, type, protocol=0) -> Socket
-
新しいソケットを生成します。domain、type、 protocol はインクルードファイルにある定数で指定します。ほとんどの定数は Socket::AF_INET のように Socket クラスの定数として定義されています。domain とtype に関しては、"AF_INET", "SOCK_STREAM" のように文字列でも指定できますが、文字列ですべての機能を指定できる保証はありません。
例えば、IPv4 の TCP ソケットは以下のように生成されます。
require 'socket' s = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
なお、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:
- プロトコルに使用する数値を指定します。