socketは、ソケット通信を行うためのクラスです。
- socket();
- socket(const char* host, int port);
- socket(const char* host, int port, int family, int socktype, int protocol);
- socket(int family, int socktype, int protocol);
- socket(const socket& from); // コピーコンストラクタ
- void open(const char* host, int port);
- void open(const char* host, int port, int family, int socktype, int protocol);
- void open(const open_params_type& param);
- void close();
- int read(void *buf, size_t size);
- template <typename T> int read(T *buf);
- char getc();
- int write(const void *buf, size_t size);
- int write(const void *buf, size_t size);
- int write(const char* str);
- template <typename T> int write(const T* buf);
- int print(const char* str)
- int recv(void *buf, size_t size);
- int send(const void *buf, size_t size);
- int send(const char* str);
- int send(char c);
コンストラクタでは、複数のオーバーロードがあります。
host, portを指定するコンストラクタは、ソケットのオープンまで行います。 それ以外のコンストラクタでは、ソケットの生成までです。 family, socktype, protocolが省略された場合は、TCP接続のソケットを生成します。
接続を行います。既にオープンされている場合には、ソケットはクローズされます。
host, port, family, socktype, protocol の扱いについては、コンストラクタと同じです。 open_params_type 構造体を使用して、オープンを行うこともできます。
既にソケットがオープンされている場合には、これをクローズします。 オープンされていない場合には何もしません。(エラーも発生しません)
basic_io
read/write() のエイリアスです。
オブジェクトがコピーされた場合には、共有オブジェクトと同じ扱いになります。
両方のオブジェクトに、同じハンドルのソケットが使用され、全てのインスタンスが破棄された場合に、ソケットはクローズされます。