Public メソッド

クラス SGSocket

ソケットの基本クラス [詳細]

#include <SGSocket.h>

SGSocketに対する継承グラフ
SGSocketのコラボレーション図

すべてのメンバ一覧

Public メソッド

 SGSocket (SGFdDataList *list)
 コンストラクタ
 SGSocket (int size, SGStream *srteam, SGFdDataList *list)
 コンストラクタ
virtual ~SGSocket ()
 デストラクタ
int GetAddrInfo (int flags, int family, int type, const char *addr, int port, struct addrinfo **ai)
 アドレス情報取得
void FreeAddrInfo (struct addrinfo *ai)
int Socket (int family, int type, int protocol)
 ソケット作成
int Bind (const struct sockaddr *addr, socklen_t addrlen)
 ソケットとアドレスを関連付け
int Connect (const struct sockaddr *addr, socklen_t addrlen)
 接続
int Close ()
 切断
int Listen (int backlog=SOMAXCONN)
 待ち受け開始
int Accept ()
 コネクションの取り出し
int SendTo (const void *data, int len, const struct sockaddr *addr, socklen_t addrlen)
 送信
virtual int Send (const void *data, int length)
 送信
virtual void OnOpen ()
 オープン後コールバック
virtual void OnClose ()
 クローズ後コールバック
virtual void OnListen ()
 待ち受け開始後コールバック
virtual void OnConnect ()
 コネクト後コールバック
virtual void OnAccept (int sd, struct sockaddr *addr, socklen_t *addrlen)
 コネクションの取り出し後コールバック
virtual int OnReceive (struct sockaddr *addr, socklen_t addrlen)
virtual void OnTimeout (TimeVal time)
 タイムアウト時コールバック
virtual void ReadyToRead ()
 データ受信
SGLogLog ()

説明

ソケットの基本クラス


コンストラクタとデストラクタ

SGSocket ( SGFdDataList list  ) 

コンストラクタ

引数:
list 
SGSocket ( int  size,
SGStream srteam,
SGFdDataList list 
)

コンストラクタ

引数:
size ログサイズ
stream ログ出力ストリーム
list ファイルディスクリプタ情報リスト
~SGSocket (  )  [virtual]

デストラクタ


関数

int GetAddrInfo ( int  flags,
int  family,
int  type,
const char *  addr,
int  port,
struct addrinfo **  ai 
)

アドレス情報取得

引数:
flags 
  • AI_PASSIVE この関数で得られるaiをbind関数で使う予定がある場合に必要です。
    接続志向プロトコルの為の準備、つまりconnect、sendto、コネクションレス・プロトコルのsendには必要ありません。
  • AI_ADDRCONFIG
family アドレスファミリー。AF_INET を指定します。
type ソケット種別

  • SOCK_STREAM TCP
  • SOCK_DGRAM UDP
addr アドレス
port ポート番号
ai アドレス情報構造体
戻り値:
getaddrinfo 関数の戻り値を返します。
void FreeAddrInfo ( struct addrinfo *  ai  ) 
引数:
ai アドレス情報構造体
int Socket ( int  family,
int  type,
int  protocol 
)

ソケット作成

引数:
family 
  • SOCK_STREAM TCP
  • SOCK_DGRAM UDP
type 
protocol 
戻り値:
成功時はソケットディスクリプタ番号を返します。エラー時は -1 を返します。
int Bind ( const struct sockaddr *  addr,
socklen_t  addrlen 
)

ソケットとアドレスを関連付け

引数:
addr アドレス
addrlen addr の長さ
戻り値:
bind 関数の戻り値を返す。
int Connect ( const struct sockaddr *  addr,
socklen_t  addrlen 
)

接続

引数:
addr アドレス
addrlen addr の長さ
戻り値:
connect 関数の戻り値を返す。
int Close (  ) 

切断

戻り値:
0 成功
-1 エラー
int Listen ( int  backlog = SOMAXCONN  ) 

待ち受け開始

引数:
backlog 最大接続数
戻り値:
0 成功
-1 エラー
int Accept (  ) 

コネクションの取り出し

戻り値:
ソケットディスクリプタ番号を返す。
int SendTo ( const void *  data,
int  length,
const struct sockaddr *  addr,
socklen_t  addrlen 
)

送信

引数:
data データ
length データの長さ
addr アドレス
addrlen addr の長さ
戻り値:
sendto 関数の戻り値を返す。
int Send ( const void *  data,
int  length 
) [virtual]

送信

引数:
data データ
length データの長さ
戻り値:
send 関数の戻り値を返す。
void OnOpen (  )  [virtual]

オープン後コールバック

オープン後に呼ばれます。

SGSocketUdp, と SGServerSocketで再定義されています。

void OnClose (  )  [virtual]

クローズ後コールバック

クローズ後に呼ばれます。

PGClientSocket, SGSocketUdp, SGServerSocket, と SGClientSocketで再定義されています。

void OnListen (  )  [virtual]

待ち受け開始後コールバック

待ち受け開始後に呼ばれます。

SGServerSocketで再定義されています。

void OnConnect (  )  [virtual]

コネクト後コールバック

コネクト後に呼ばれます。

void OnAccept ( int  sd,
struct sockaddr *  addr,
socklen_t *  addrlen 
) [virtual]

コネクションの取り出し後コールバック

コネクションの取り出し後に呼ばれます。

PGStationSocket, と SGServerSocketで再定義されています。

int OnReceive ( struct sockaddr *  addr,
socklen_t  addrlen 
) [virtual]

受信時コールバック

ソケットにデータが到着するとReadyToRead()が呼ばれ、その中でデータが受信されます。 受信されたデータが内部バッファに格納され、OnReceive()が呼ばれます。 内部バッファのデータは次の関数でサイズの取得、データの取得ができます。 int GetDataLength(); int GetData(void* data,int len); 内部バッファにデータが残っている状態でこの関数を終了すると、次のいづれかの条件で 再度、OnReceive()が呼ばれます。 1.10ms程度の時間経過 2.新規データ到着 いづれの場合も、一度この関数を抜けると、再度この関数が呼ばれるまでに、他のソケットや ファイルなどの受信処理、タイマー発生に伴う処理などが行われる可能性があります。 より高速(高優先)にこの処理を終わらせたい場合は、全てのデータを処理してから 関数を抜けるようにして下さい。

引数:
addr アドレス
addrlen addr の長さ
戻り値:
常に 0 を返す。

PGClientSocketで再定義されています。

void OnTimeout ( TimeVal  time  )  [virtual]

タイムアウト時コールバック

タイムアウト発生後に呼ばれます。

void ReadyToRead (  )  [virtual]

データ受信

基本クラスのReadyToReadは使わない

SGFdDataを再定義しています。

SGLog& Log (  )  [inline]

このクラスの説明は次のファイルから生成されました:

PlusG SMART Solution リファレンスマニュアル Ver 1.0.0