Declaration
template < int Family, int Protocol, class CharT = char, class Traits = std::char_traits<CharT> > class basic_sockaddress; class sockaddress_error;
Overview
sockaddress は,struct sockaddr のラッパクラスです.ホスト名 and/or ポート番号(または,サービス名)を指定すると,それらの情報を基に新たな struct sockaddr を生成します.sockaddress_error は,指定されたホスト名, またはサービス名に対応するポート番号が見つからない場合に送出される例外です.
Template Parameters
- Family
- プロトコルファミリーを指定します.
- Protocol
- プロトコルを指定します.
- CharT
- 文字の型を指定します.デフォルト値は,char.
- Traits
- 文字列を扱うためのtraitsを指定します.デフォルト値は, std::char_traits<CharT>.
Related Types
typedef struct sockaddr_in inet_type; typedef struct sockaddr base_type; typedef struct in_addr address_type; typedef CharT char_type; typedef std::basic_string<CharT, Traits> string_type; typedef unsigned int size_type;
Construction and Member Functions
basic_sockaddress(); explicit basic_sockaddress(const inet_type& addr); explicit basic_sockaddress(int port); explicit basic_sockaddress(const char_type* service); explicit basic_sockaddress(const string_type& service); explicit basic_sockaddress(const char_type* host, int port); explicit basic_sockaddress(const string_type& host, int port); explicit basic_sockaddress(const char_type* host, const char_type* service); explicit basic_sockaddress(const string_type& host, const string_type& service); virtual ~basic_sockaddress(); basic_sockaddress& assign(const inet_type& addr); basic_sockaddress& assign(int port); basic_sockaddress& assign(const char_type* service); basic_sockaddress& assign(const string_type& service); basic_sockaddress& assign(const char_type* host, int port); basic_sockaddress& assign(const string_type& host, int port); basic_sockaddress& assign(const char_type* host, const char_type* service); basic_sockaddress& assign(const string_type& host, const string_type& service);
クライアント用の struct sockaddr を生成する場合はホスト名とポート番号, サーバ用の struct sockaddr を生成する場合にはポート番号のみを指定します. ポート番号の代わりにサービス名 (http, ftp, ...) を指定することもできます.
string_type ipaddr() const; int port() const;
IP アドレス,およびポート番号の情報へアクセスするためのメソッドです. ipaddr() は,ドット区切りの文字列 (xxx.xxx.xxx.xxx) が返されます.
const inet_type* data() const; size_type size() const; // inet_typeのサイズ
これらのメソッドは,OS のシステムコールを使う際に,struct sockaddr にアクセスを行う必要がある場合に使用します.