ソケットの基本クラス
[詳細]
#include <SGSocket.h>
すべてのメンバ一覧
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 () |
| | データ受信
|
| SGLog & | Log () |
説明
ソケットの基本クラス
コンストラクタとデストラクタ
コンストラクタ
- 引数:
-
| size | ログサイズ |
| stream | ログ出力ストリーム |
| list | ファイルディスクリプタ情報リスト |
関数
| 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 |
) |
|
| 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 Listen |
( |
int |
backlog = SOMAXCONN |
) |
|
コネクションの取り出し
- 戻り値:
- ソケットディスクリプタ番号を返す。
| 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] |
送信
- 引数:
-
- 戻り値:
- send 関数の戻り値を返す。
| 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] |
受信時コールバック
ソケットにデータが到着すると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を再定義しています。
このクラスの説明は次のファイルから生成されました: