メインページ   名前空間一覧   クラス階層   アルファベット順一覧   構成   ファイル一覧   名前空間メンバ   構成メンバ   ファイルメンバ  

クラス KSCL::CSocketBase の解説

・ソケット接続用インターフェイスです。. より詳しく...

KSCL::CSocketBaseに対する継承グラフ

Inheritance graph
[凡例]
すべてのメンバ一覧

公開型

enum  E_SELECT_TYPE {
  E_SELECT_RECEIVE = 1,
  E_SELECT_SEND
}
 Select() 用フラグ。. より詳しく...

enum  E_DEFAULT { E_DEFAULT_RECV_SIZE = 1024 }
 デフォルト値。. より詳しく...


公開メンバ

 CSocketBase () throw ( CSocketException )
 ・コンストラクタ。. より詳しく...

virtual ~CSocketBase () throw ( CSocketException )
 ・デストラクタ。. より詳しく...

virtual void Connect ()=0 throw ( CSocketException )
virtual void Close () throw ( CSocketException )
 ・接続を閉じます。. より詳しく...

virtual int Send (const std::string &p_rcSendMsg) const throw ( CSocketException )
 ソケットを通してメッセージを送ります。. より詳しく...

virtual std::string Recv () const throw ( CSocketException )
 ソケットを通してメッセージを受け取ります。. より詳しく...

virtual bool Select (const E_SELECT_TYPE p_eSelectType, const long p_lWaitSecond, const long p_lMicroSecond) const throw ( CSocketException )
 ・読み書きできる状態か調べます。. より詳しく...

virtual bool IsRecvable () const throw ( CSocketException )
 ・ recv バッファにデータが入ってるかどうか調べます。. より詳しく...

virtual bool IsSendable () const throw ( CSocketException )
 ・ send できるかどうか調べます。. より詳しく...

virtual std::string WaitAndRecv (const long p_lWaitSecond, const long p_lMicroSecond) const throw ( CSocketException )
 ・メッセージが送られてくるまで待ちます。. より詳しく...


保護属性

SOCKET m_ulSocket
 接続先へのソケットです。. より詳しく...


解説

・ソケット接続用インターフェイスです。.

 フツーのソケット通信を使って接続するためのインターフェイスです。


メンバ列挙型の解説

enum KSCL::CSocketBase::E_SELECT_TYPE
 

Select() 用フラグ。.

Select() の第1引数に渡してください。

列挙型値:
E_SELECT_RECEIVE  recv していいか調べます。
E_SELECT_SEND  send していいか調べます。

enum KSCL::CSocketBase::E_DEFAULT
 

デフォルト値。.

各種デフォルト値です。

列挙型値:
E_DEFAULT_RECV_SIZE  Recv() が受け取るサイズ。


コンストラクタとデストラクタの解説

KSCL::CSocketBase::CSocketBase   throw ( CSocketException )
 

・コンストラクタ。.

 初期化をします。

KSCL::CSocketBase::~CSocketBase   throw ( CSocketException ) [virtual]
 

・デストラクタ。.

 後始末をします。


メンバ関数の解説

virtual void KSCL::CSocketBase::Connect   throw ( CSocketException ) [pure virtual]
 

KSCL::CSocketClient, と KSCL::CSocketServerに実装されています.

void KSCL::CSocketBase::Close   throw ( CSocketException ) [virtual]
 

・接続を閉じます。.

 ソケット接続を、すでに開いているのなら閉じます。

KSCL::CSocketServerで再定義されています。

int KSCL::CSocketBase::Send const std::string &    p_rcSendMsg const throw ( CSocketException ) [virtual]
 

ソケットを通してメッセージを送ります。.

 ごく普通に送ります。

戻り値:
送信した文字列の長さ。全部送っていれば第1引数のサイズと同じになってるはず。
引数:
p_rcSendMsg  送る文字列。

std::string KSCL::CSocketBase::Recv   const throw ( CSocketException ) [virtual]
 

ソケットを通してメッセージを受け取ります。.

 E_DEFAULT_RECV_SIZE 分だけメッセージを受け取ります。
 WaitAndRecv() の方がお勧めです。

戻り値:
受け取った文字列。

bool KSCL::CSocketBase::Select const E_SELECT_TYPE    p_eSelectType,
const long    p_lWaitSecond,
const long    p_lMicroSecond
const throw ( CSocketException ) [virtual]
 

・読み書きできる状態か調べます。.

 Recv() を呼んでいいか、 Send() を呼んでいいかを調べます。
 実際には、 Recv() の方を調べて、それが不可能なら Send() を行う、という形式の方がいいでしょう。
 また、それにはこのメンバ関数よりも IsRecvable() を使用した方がいいと思います。

戻り値:
true  指定したタイプの処理をしても大丈夫です。
false  指定したタイプの処理は現在行えません。
引数:
p_eSelectType  調べるタイプです。
p_lWaitSecond  待つ秒数。実際には第2引数と足した時間待ちます。
p_lMicroSecond  待つマイクロ秒数。「マイクロ」なので、 500000 で 0.5 秒です。

bool KSCL::CSocketBase::IsRecvable   const throw ( CSocketException ) [virtual]
 

・ recv バッファにデータが入ってるかどうか調べます。.

戻り値:
true  recv バッファにデータが入っているので Recv() で取り出せます。
false  recv バッファにはデータが入ってません。

bool KSCL::CSocketBase::IsSendable   const throw ( CSocketException ) [virtual]
 

・ send できるかどうか調べます。.

戻り値:
true  send できます。
false  send できません。

std::string KSCL::CSocketBase::WaitAndRecv const long    p_lWaitSecond,
const long    p_lMicroSecond
const throw ( CSocketException ) [virtual]
 

・メッセージが送られてくるまで待ちます。.

 第1引数で指定した時間、メッセージが送られてくるのを待ちます。
 送られてきたら戻り値として返します。全部まとめて取得します。
 これをループに入れてタイムアウトを 0.5 秒とかにすれば、メッセージが送られてくるまで しっかり待つことができます。それを別スレッドで実行すれば言うことなし。

戻り値:
送られてきたメッセージです。タイムアウトになったら空文字列を返します。
引数:
p_lWaitSecond  待つ秒数。実際には第2引数と足した時間待ちます。
p_lMicroSecond  待つマイクロ秒数。「マイクロ」なので、 500000 で 0.5 秒です。


メンバの解説

SOCKET KSCL::CSocketBase::m_ulSocket [protected]
 

接続先へのソケットです。.


KSCL(KAB-studioClassLibrary)に対してThu Jun 12 09:55:38 2003に生成されました。 doxygen1.2.15