前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFBSockPort
ISockPort インターフェースのラッパークラスです。
#include <SFBSockPort.h.hpp>
class SFBSockPort : public SFBPort;
<link linkend="sec.macro.core.typedef.SFMTYPEDEFWRAPPER">SFMTYPEDEFWRAPPER</link>(SFBSockPort)
        

継承図

SFBSockPort クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0
× × ×

参照

BREW API ISockPort

メンバ

パブリック関数
SFCError Accept( SFBSockPortSmpPtr sockport )
AEE_NET_READ_EVENT がアサートされた場合に応答するため、ソケットのリスニングに使用します。最初にバックログキューに入った接続がキューから削除され、新しく接続されたソケットにバインドされます。新しく作成されたソケットは接続状態にあります。リッスン中のソケットは影響を受けず、キューのサイズが維持されます (つまり、listen を再コールする必要はありません。)
SFCError Bind( VoidConstPtr addr )
ローカルアドレスとポートをソケットに関連付けます。未接続のソケットではバインド関数を使用します。
SFCError Connect( VoidConstPtr addr )
AEE_SOCKPORT_STREAM タイプのソケットに対し、指定されたリモートアドレスへの TCP 接続の開始を試みます。
Void DbgMark( Void )
ディバグマークを付けます。
SFCError GetOpt( SInt32 level , SInt32 name , VoidPtr value , SInt32Ptr size )
ソケットのオプションを取得します。
SFCError GetOpt( SInt32 level , SInt32 name , SFXBufferPtr value )
ソケットのオプションを取得します。
SFCError GetPeerName( VoidPtr addr , SInt32Ptr size )
接続したソケットのリモートアドレスを返します。
SFCError GetPeerName( SFXBufferPtr buffer )
接続したソケットのリモートアドレスを返します。
SFCError GetSockName( VoidPtr addr , SInt32Ptr size )
ソケットのローカルアドレスを返します。
SFCError GetSockName( SFXBufferPtr buffer )
ソケットのローカルアドレスを返します。
SFCError IsRealized( BoolPtr realized )
ソケットが実体化 (バインド) したかどうかをチェックします。
SFCError Listen( SInt32 backlog )
着信の接続がその後受け入れられるように、接続を受動的に開きます。
static
SFBSockPortSmp
NewInstance( SFCErrorPtr exception = null )
SFBSockPort インスタンスを生成します。
static
SFBSockPortSmp
NewInstance( AEECLSID id , SFCErrorPtr exception = null )
SFBSockPort インスタンスを生成します。
SFCError OpenEx( UInt16 family , AEESockType type , SInt32 protocol )
特定のアドレスファミリ、タイプ、プロトコルで使用するために SockPort を開きます。
SInt32 ReadV( SockIOBlock * ioblocks , UInt16 count )
ソケットからデータを読み取ります。iov[] 配列のエントリで指定される 1 つ以上のバッファにデータを書き込みます。
SFCError Realize( Void )
IP アドレスを取得し、基になるネットワーク層が通信可能であることを確認します。
SInt32 RecvFrom( ACharPtr buffer , SInt32 length , UInt32 flags , VoidPtr addr , SInt32Ptr size )
データグラムソケットからデータを読み取り、送信元のアドレスを記録します。
SInt32 RecvFrom( SFXBufferPtr buffer , UInt32 flags , VoidPtr addr , SInt32Ptr size )
データグラムソケットからデータを読み取り、送信元のアドレスを記録します。
SFCError SelectNetwork( SInt32 network )
特定のデータネットワークを選択します。
SFCError SelectNetworkEx( SInt32 network , SInt16 family )
特定のデータネットワークを選択します。
SInt32 SendTo( ACharConstPtr buffer , SInt32 length , UInt32 flags , VoidConstPtr addr )
ソケットにバインドされたローカルアドレスから、指定されたアドレスへデータグラムパケットを送信します。
SInt32 SendTo( SFXAnsiStringConstRef buffer , UInt32 flags , VoidConstPtr addr )
ソケットにバインドされたローカルアドレスから、指定されたアドレスへデータグラムパケットを送信します。
SInt32 SendTo( SFXBufferConstRef buffer , UInt32 flags , VoidConstPtr addr )
ソケットにバインドされたローカルアドレスから、指定されたアドレスへデータグラムパケットを送信します。
SFCError SetOpt( SInt32 level , SInt32 name , VoidConstPtr value , SInt32 size )
ソケットのオプションを設定します。
SFCError SetOpt( SInt32 level , SInt32 name , SFXBufferConstRef value )
ソケットのオプションを設定します。
SFCError Shutdown( SInt32 how )
二重接続の全部または一部を正常に終了させます。
SInt32 WriteV( SockIOBlock const * ioblocks , UInt16 count )
接続済みのソケットにデータを書き込みます。
SFCError Close( Void ) (SFBPort から継承)
開いているポートを閉じる、または進行中の開く操作を停止します。
static
Bool
Exhausted( SInt32 code ) (SFBSource から継承)
SFBSource、SFBPeek、または SFBGetLine がデータを処理し終えたかどうかを判定します。
SFCError GetLastError( Void ) (SFBPort から継承)
SFBPort で発生した最後のエラーを取得します。
SFCError IOCtl( SInt32 option , UInt32 val ) (SFBPort から継承)
SFBPort の動作 ( 構成の設定/取得など ) に対する制御を可能にします。
SFCError Open( ACharConstPtr port ) (SFBPort から継承)
指定されたポートを開きます。
SFCError Open( SFXAnsiStringConstRef port ) (SFBPort から継承)
指定されたポートを開きます。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFCError QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFBBaseSmp QueryInterface( AEECLSID clsid ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SInt32 Read( VoidPtr buf , SInt32 size ) (SFBSource から継承)
指定したバッファにソースストリームからのバイトをコピーします。
SInt32 Read( SFXBufferPtr buf ) (SFBSource から継承)
指定したバッファにソースストリームからのバイトをコピーします。
Void Readable( SFXCallbackPtr callback ) (SFBSource から継承)
SFBSource::Read 関数が ISOURCE_WAIT 以外のものを返した場合に呼び出されるコールバック関数を 登録または登録解除します。
Void Self( AEECLSID clsidReq , SFBQuerySmpPtr clone , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
SFBQuerySmp Self( AEECLSID clsidReq , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
SInt32 Write( ACharConstPtr port , SInt32 bufSize ) (SFBPort から継承)
指定されたバッファからのバイトをソースストリームにコピーします。
SInt32 Write( SFXAnsiStringConstRef buf ) (SFBPort から継承)
指定されたバッファからのバイトをソースストリームにコピーします。
SInt32 Write( SFXBufferConstRef buf ) (SFBPort から継承)
指定されたバッファからのバイトをソースストリームにコピーします。
Void Writeable( SFXCallbackPtr callback ) (SFBPort から継承)
SFBPort::Write が AEEPORT_WAIT 以外のものを返した場合にコールされるコールバックをスケジュールします。
プロテクト関数
static
SFBBaseSmp
FactoryByCreate( AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
static
SFBBaseSmp
FactoryByQuery( SFBQuerySmpConstRef query , AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。

SFBSockPort::Accept
AEE_NET_READ_EVENT がアサートされた場合に応答するため、ソケットのリスニングに使用します。最初にバックログキューに入った接続がキューから削除され、新しく接続されたソケットにバインドされます。新しく作成されたソケットは接続状態にあります。リッスン中のソケットは影響を受けず、キューのサイズが維持されます (つまり、listen を再コールする必要はありません。)
[ public ]
SFCError Accept(
    SFBSockPortSmpPtr sockport   // 新しく受け入れられた SFBSockPort インタフェースへのポインタ
);

戻り値

  • AEE_NET_SUCCESS: 新しく受け入れられたソケットが pps で返された。
  • IPORT_WAIT: (AEE_AF_INET と AEE_AF_INET6 のみ) 今は使用可能な新しいソケットがない。後で再試行すること ( ISockPort_Readable() を参照)
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EFAULT: pps ポインタが不正。
  • AEE_NET_EINVAL: ソケットがリッスンしていない。
  • AEE_NET_EOPNOTSUPP: ソケットタイプが SOCK_STREAM でない。
  • AEE_NET_ENETNONET: 不明な理由のためネットワークサブシステムが使用できない。
  • AEE_NET_ENETINPROGRESS: ネットワークサブシステムの確立操作が進行中。
  • AEE_NET_ENETCLOSEINPROGRESS: ネットワークサブシステムを閉じる操作が進行中。
  • AEE_NET_ENOMEM: メモリー不足のため接続を確立できない。
  • AEE_NET_EMFILE: リソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる)。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

参照

BREW API ISockPort_Accept


SFBSockPort::Bind
ローカルアドレスとポートをソケットに関連付けます。未接続のソケットではバインド関数を使用します。
[ public ]
SFCError Bind(
    VoidConstPtr addr   // バインド先アドレスへの型不定ポインタ ( AEESockAddrStorageを参照)
);

戻り値

  • AEE_NET_SUCCESS: ソケットがローカルアドレスに正常にバインドされた。
  • IPORT_WAIT: (AEE_AF_INET と AEE_AF_INET6 のみ) 現在は操作を完了できない。これはネットワーク接続の確立中に発生することがある ( ISockPort_Writeable() を参照)。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EAFNOSUPPORT: inet アドレスではない。
  • AEE_NET_EMFILE: リソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる)。
  • AEE_NET_ENETDOWN: ネットワーク層での失敗。ハンドセットがネットワークのサービス圏外。
  • AEE_NET_EOPNOTSUPP: 特定のローカル IP アドレスが要求された (サポートされていない)。
  • AEE_NET_EADDRINUSE: ローカルアドレスが既に使用されている。
  • AEE_NET_EINVAL: ソケットがローカルアドレスに既にバインドされている。
  • AEE_NET_EFAULT: 無効なアドレスパラメータが指定された。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

特定のローカル IP アドレスにバインドすることは、現在サポートされていません。

参照

BREW API ISockPort_Bind


SFBSockPort::Connect
AEE_SOCKPORT_STREAM タイプのソケットに対し、指定されたリモートアドレスへの TCP 接続の開始を試みます。
[ public ]
SFCError Connect(
    VoidConstPtr addr   // 接続先アドレスへの型不定ポインタ ( AEESockAddrStorageを参照)
);

戻り値

  • AEE_NET_SUCCESS: ソケットがリモートアドレスに正常に接続された。
  • IPORT_WAIT: (AEE_AF_INET と AEE_AF_INET6 のみ) 現在は操作を完了できない。これはネットワーク接続の確立中に発生することがある ( ISockPort_Writeable() を参照)。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EAFNOSUPPORT: inet アドレスではない。
  • AEE_NET_EMFILE: リソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる)。
  • AEE_NET_ENETDOWN: ネットワーク層での失敗。ハンドセットがネットワークのサービス圏外。
  • AEE_NET_ECONNREFUSED: 接続試行が拒否された。
  • AEE_NET_ETIMEDOUT: 接続試行がタイムアウトした。
  • AEE_NET_EFAULT: 無効なアドレスパラメータが指定された。
  • AEE_NET_EOPNOTSUPP: 無効なサーバーアドレスが指定された、またはストリームソケットではなかった。
  • AEE_NET_EISCONN: ソケットが既に接続されている。
  • AEE_NET_ENOMEM: メモリー不足のため接続を確立できない。
  • AEE_NET_EIPADDRCHANGED: PPP の再同期化により IP アドレスが変更された。
  • AEE_NET_EINPROGRESS: 接続の確立が進行中。
  • AEE_NET_ENETDOWN: ネットワークサブシステムが使用できない。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

DGRAM ソケットでの SFBSockPort_Connect() はサポートされていません。

参照

BREW API ISockPort_Connect


SFBSockPort::DbgMark
ディバグマークを付けます。
[ public ]
Void DbgMark(Void);

SFBSockPort::GetOpt
ソケットのオプションを取得します。
[ public ]
SFCError GetOpt(
    SInt32 level     // オプションレベル (AEESockOpt を参照)
    SInt32 name      // オプション名 (AEESockOpt を参照)
    VoidPtr value    // オプションに適したデータ型へのポインタ (AEESockOpt を参照)
    SInt32Ptr size   // 入力時は、pnOptSize は pOptVal のサイズ (バイト数) を指定する。出力時は、pnOptSize には pOptVal に読み込まれたデータバイトの数が設定される。
);
[ public ]
SFCError GetOpt(
    SInt32 level         // オプションレベル (AEESockOpt を参照)
    SInt32 name          // オプション名 (AEESockOpt を参照)
    SFXBufferPtr value   // オプションに適したデータ型へのポインタ (AEESockOpt を参照)
);

戻り値

  • AEE_NET_SUCCESS: ソケットオプションが正常に取得された場合。
  • IPORT_WAIT: 操作が進行中。再試行可能の通知を受けるには、 ISockPort_Readable() を使用する。
  • AEE_NET_EFAULT: 無効なパラメータが指定された。
  • AEE_NET_EINVAL: ソケットが無効。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_ENOPROTOOPT: 指定されたレベルではオプションが不明。
  • AEE_NET_EOPNOTSUPP: このソケットタイプではサポートされていない。
  • AEE_NET_ENETDOWN: ネットワーク層での失敗。ハンドセットがネットワークのサービス圏外。
  • AEE_NET_EMFILE: ネットワークリソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる) 。

他のエラーコードが戻ることもある。

参照

BREW API ISockPort_GetOpt


SFBSockPort::GetPeerName
接続したソケットのリモートアドレスを返します。
[ public ]
SFCError GetPeerName(
    VoidPtr addr     // 読み込み先アドレスへの型不定ポインタ ( AEESockAddrStorage を参照)
    SInt32Ptr size   // アドレスのサイズへのポインタ 
);
[ public ]
SFCError GetPeerName(
    SFXBufferPtr buffer   // 読み込み先アドレスへのポインタ
);

戻り値

  • AEE_NET_SUCCESS: pAddr にリモートアドレスが正常に読み込まれた。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EOPNOTSUPP: ソケットタイプが SOCK_STREAM でない。
  • AEE_NET_EINVAL: ストリームソケットでない。
  • AEE_NET_ENOTCONN: ソケットが接続されていない。
  • AEE_NET_ECONNRESET: リモート接続が閉じられている。
  • AEE_NET_EFAULT: 無効なアドレスパラメータが指定された。

他のエラーコードが戻ることもある。

参照

BREW API ISockPort_GetPeerName


SFBSockPort::GetSockName
ソケットのローカルアドレスを返します。
[ public ]
SFCError GetSockName(
    VoidPtr addr     // 読み込み先アドレスへの型不定ポインタ ( AEESockAddrStorage を参照)
    SInt32Ptr size   //  アドレスのサイズへのポインタ
);
[ public ]
SFCError GetSockName(
    SFXBufferPtr buffer   // 読み込み先アドレスへのポインタ
);

戻り値

  • AEE_NET_SUCCESS: pAddr にローカルアドレスが正常に読み込まれた。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EINVAL: ソケットがローカルアドレスにバインドされていない。
  • AEE_NET_EFAULT: 無効なアドレスパラメータが指定された。

他のエラーコードが戻ることもある。

参照

BREW API ISockPort_GetSockName


SFBSockPort::IsRealized
ソケットが実体化 (バインド) したかどうかをチェックします。
[ public ]
SFCError IsRealized(
    BoolPtr realized   // ソケットのステータスに従って、true または false に設定される
);

バージョン

この関数は BREW バージョン 4.0 から利用できます。

参照

BREW API ISockPort_IsRealized


SFBSockPort::Listen
着信の接続がその後受け入れられるように、接続を受動的に開きます。
[ public ]
SFCError Listen(
    SInt32 backlog   // 待機中の接続の最大数
);

戻り値

  • AEE_NET_SUCCESS: ソケットが正常にリスニングモードになった。
  • IPORT_WAIT: (AEE_AF_INET と AEE_AF_INET6 のみ) 現在は操作を完了できない。これはネットワーク接続の確立中に発生することがある ( ISockPort_Writeable() を参照)。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EOPNOTSUPP: ソケットにリスニング機能がない (UDP)。
  • AEE_NET_EFAULT: backlog パラメータが無効。
  • AEE_NET_ENETNONET: 不明な理由のためネットワークサブシステムが使用できない。
  • AEE_NET_ENETINPROGRESS: ネットワークサブシステムの確立操作が進行中。
  • AEE_NET_ENETCLOSEINPROGRESS: ネットワークサブシステムを閉じる操作が進行中。
  • AEE_NET_EINVAL: ソケットがバインドされていない、または既にリッスンしている。
  • AEE_NET_EISCONN: ソケットが接続されている。
  • AEE_NET_ENOMEM: メモリー不足。

他のエラーコードが戻ることもある。

参照

BREW API ISockPort_Listen


SFBSockPort::NewInstance
SFBSockPort インスタンスを生成します。
[ public, static ]
SFBSockPortSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);
[ public, static ]
SFBSockPortSmp NewInstance(
    AEECLSID id                    // クラスID
    SFCErrorPtr exception = null   // エラー値
);

SFBSockPort::OpenEx
特定のアドレスファミリ、タイプ、プロトコルで使用するために SockPort を開きます。
[ public ]
SFCError OpenEx(
    UInt16 family      // アドレスファミリ (AEE_AF_*)。このソケットに対して SFBSockPort_SelectNetwork() または SFBSockPort_SelectNetworkEx() を既にコールした場合、
		// wFamily は、ネットワークに要求されたアドレスファイミリに一致しなければならない。 
    AEESockType type   // ソケットタイプ
    SInt32 protocol    // ソケットプロトコル (AEE_IPPROTO_*)、または指定された family と type の組み合わせのシステムのデフォルトを選択するには 0
);

戻り値

  • AEE_NET_SUCCESS: 要求されたアドレスファミリ、タイプ、プロトコルでソケットが正常に開いた。
  • AEE_NET_EBADF: ソケットが既に開いている。
  • AEE_NET_ESOCKNOSUPPORT: タイプが無効。
  • AEE_NET_EPROTONOSUPPORT: プロトコルが無効。
  • AEE_NET_EAFNOSUPPORT: ファミリが無効。
  • AEE_NET_EPROTOTYPE: ソケットタイプのプロトコルが不正。
  • AEE_NET_ENOMEM: メモリー不足。
  • AEE_NET_EINVAL: このソケットのファミリが無効。

他のエラーコードが戻ることもある。

参照

BREW API ISockPort_OpenEx


SFBSockPort::ReadV
ソケットからデータを読み取ります。iov[] 配列のエントリで指定される 1 つ以上のバッファにデータを書き込みます。
[ public ]
SInt32 ReadV(
    SockIOBlock * ioblocks   // データを読み込む SockIoBlock 構造体の配列
    UInt16 count             // ioblocks 配列のエントリ数を指定する
);

戻り値

  • 読み込んだバイト数 (>0) : 正の数は、指定されたバッファに読み込まれた総バイト数を示す。
  • 0 (ゼロ) : これ以上受信するデータがない。ピアが接続を切断した。
  • IPORT_WAIT: 今は使用可能なデータがない。後で再試行すること。( ISockPort_Readable() を参照)
  • IPORT_ERROR: 発生したエラーコードは、 SFBSockPort::GetLastError() をコールして取得できる。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_ENOTCONN: ソケットが接続されていない。
  • AEE_NET_ECONNRESET: 接続がサーバーによってリセットされた。
  • AEE_NET_ECONNABORTED: タイムアウトやその他の失敗のため接続が中断された。
  • AEE_NET_EIPADDRCHANGED: IP アドレスが変更されたため、接続がリセットされた。
  • AEE_NET_EPIPE: パイプが壊れた。
  • AEE_NET_ENETDOWN: ネットワークサブシステムが使用できない。
  • AEE_NET_EFAULT: 無効なアドレスパラメータが指定された。
  • AEE_NET_EINVAL: ストリームソケットでない。
  • AEE_NET_ESHUTDOWN: ソケットがシャットダウンしているため読み取りできない。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

参照

BREW API ISockPort_ReadV


SFBSockPort::Realize
IP アドレスを取得し、基になるネットワーク層が通信可能であることを確認します。
[ public ]
SFCError Realize(Void);

バージョン

この関数は BREW バージョン 4.0 から利用できます。

参照

BREW API ISockPort_Realize


SFBSockPort::RecvFrom
データグラムソケットからデータを読み取り、送信元のアドレスを記録します。
[ public ]
SInt32 RecvFrom(
    ACharPtr buffer   // 受信データを格納するバッファ
    SInt32 length     // バッファのサイズ (バイト数)
    UInt32 flags      // 未使用
    VoidPtr addr      // 読み込み先アドレスへのポインタ ( AEESockAddrStorage を参照)
    SInt32Ptr size    // アドレスのサイズへのポインタ
);
[ public ]
SInt32 RecvFrom(
    SFXBufferPtr buffer   // 受信データを格納するバッファ
    UInt32 flags          // 未使用
    VoidPtr addr          // 読み込み先アドレスへのポインタ ( AEESockAddrStorage を参照)
    SInt32Ptr size        // アドレスのサイズへのポインタ
);

戻り値

  • bytes_read (>=0): 負でない数値は、指定されたバッファに正常に読み込まれたバイト数を示す。
  • IPORT_WAIT: 今は使用可能なデータがない。後で再試行すること。( ISockPort_Readable() を参照)
  • IPORT_ERROR: 発生したエラーコードは、 SFBSockPort::GetLastError() をコールして取得できる。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EMFILE: ネットワークリソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる) 。
  • AEE_NET_ENETDOWN: ネットワークが使用不可 (たとえば、ハンドセットがサービス圏外)。
  • AEE_NET_EOPNOTSUPP: データグラムソケットではない。
  • AEE_NET_EADDRINUSE: 既に使用中のローカルポートにバインドを試みた。
  • AEE_NET_EFAULT: pcBuf ポインタが不正。
  • AEE_NET_EINVAL: ソケットがバインドされていない。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

参照

BREW API ISockPort_RecvFrom


SFBSockPort::SelectNetwork
特定のデータネットワークを選択します。
[ public ]
SFCError SelectNetwork(
    SInt32 network   // データネットワーク (AEE_NETWORK_*)
);

戻り値

  • AEE_NET_SUCCESS: ネットワークが正常に選択された。
  • AEE_NET_EINVAL: ネットワークが有効でない。
  • AEE_NET_EOPNOTSUPP: ネットワークが既に選択されている。

他のエラーコードが戻ることもある。

解説

ほとんどのアプリケーションでは、ネットワークを明示的に選択する必要はありません。

参照

BREW API ISockPort_SelectNetwork


SFBSockPort::SelectNetworkEx
特定のデータネットワークを選択します。
[ public ]
SFCError SelectNetworkEx(
    SInt32 network   // データネットワークタイプ (AEE_NETWORK_*)
    SInt16 family    //  ネットワークアドレスファミリ (AEE_AF_*)。このソケットに対して SFBSockPort::OpenEx() を既にコールした場合、
		// family は、ソケットに要求されたアドレスファイミリに一致しなければならない
);

戻り値

  • AEE_NET_SUCCESS: データネットワークが選択された。
  • AEE_NET_EINVAL: ネットワークが有効でない。
  • AEE_NET_EOPNOTSUPP: ネットワークが既に選択されている。
  • AEE_EFAILED: その他のエラー。

他のエラーコードが戻ることもある。

解説

この関数は、旧式の SFBSockPort::SelectNetwork() に置き換わります。

参照

BREW API ISockPort_SelectNetworkEx


SFBSockPort::SendTo
ソケットにバインドされたローカルアドレスから、指定されたアドレスへデータグラムパケットを送信します。
[ public ]
SInt32 SendTo(
    ACharConstPtr buffer   // 送信するデータのバッファ
    SInt32 length          // バッファのサイズ (バイト数)
    UInt32 flags           // データ伝送オプション
    VoidConstPtr addr      // 送信先アドレスへの型不定ポインタ ( AEESockAddrStorage を参照)
);
[ public ]
SInt32 SendTo(
    SFXAnsiStringConstRef buffer   // 送信するデータのバッファ
    UInt32 flags                   // データ伝送オプション
    VoidConstPtr addr              // 送信先アドレスへの型不定ポインタ ( AEESockAddrStorage を参照)
);
[ public ]
SInt32 SendTo(
    SFXBufferConstRef buffer   // 送信するデータのバッファ
    UInt32 flags               // データ伝送オプション
    VoidConstPtr addr          // 送信先アドレスへの型不定ポインタ ( AEESockAddrStorage を参照)
);

戻り値

  • 送信したバイト数 (>0): 正の数値は、正常に送信されたバイト数を示す。
  • IPORT_WAIT: 現在はデータを送信できない。後で再試行すること。 ( SFBSockPort::Writeable() を参照)
  • IPORT_ERROR: 発生したエラーコードは、 SFBSockPort::GetLastError() をコールして取得できる。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EAFNOSUPPORT: inet アドレスではない。
  • AEE_NET_EMFILE: ネットワークリソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる) 。
  • AEE_NET_ENETDOWN: ネットワークが使用不可 (たとえば、ハンドセットがサービス圏外)。
  • AEE_NET_EOPNOTSUPP: データグラムソケットではない。
  • AEE_NET_EFAULT: pcBuf ポインタが不正。
  • AEE_NET_ENOMEM: メモリー不足。
  • AEE_NET_EINVAL: ソケットがバインドされていない。
  • EPRIVLEVEL: URGENT または WAKEUP フラグを使用する特権がない。

他のエラーコードが戻ることもある。

解説

この関数は、タイプ AEE_SOCKPORT_STREAM のソケットではなく、タイプ AEE_SOCKPORT_DGRAM のソケットと共に使用する必要があります。ソケットがローカルアドレスにバインドされていない場合は、ソケットがローカルアドレスにバインドされます。

参照

BREW API ISockPort_SendTo


SFBSockPort::SetOpt
ソケットのオプションを設定します。
[ public ]
SFCError SetOpt(
    SInt32 level         // オプションレベル ( AEESockOpt を参照)
    SInt32 name          // オプション名 ( AEESockOpt を参照)
    VoidConstPtr value   // オプションに適したデータ型へのポインタ ( AEESockOpt を参照)
    SInt32 size          // value のサイズ
);
[ public ]
SFCError SetOpt(
    SInt32 level              // オプションレベル ( AEESockOpt を参照)
    SInt32 name               // オプション名 ( AEESockOpt を参照)
    SFXBufferConstRef value   // オプションに適したデータ型へのポインタ ( AEESockOpt を参照)
);

戻り値

  • AEE_NET_SUCCESS: ソケットオプションが正常に設定された。
  • IPORT_WAIT: 操作が進行中。再試行可能の通知を受けるには、 ISockPort_Writeable() を使用する。
  • AEE_NET_EFAULT: 無効なパラメータが指定された。
  • AEE_NET_EINVAL: ソケットが無効。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_ENOPROTOOPT: 指定されたレベルではオプションが不明。
  • AEE_NET_EOPNOTSUPP: このソケットタイプではサポートされていない。
  • AEE_NET_ENETDOWN: ネットワーク層での失敗。ハンドセットがネットワークのサービス圏外。
  • AEE_NET_EMFILE: ネットワークリソース不足のためこの操作を完了できない (使用中のソケット数が多すぎる) 。

他のエラーコードが戻ることもある。

参照

BREW API ISockPort_SetOpt


SFBSockPort::Shutdown
二重接続の全部または一部を正常に終了させます。
[ public ]
SFCError Shutdown(
    SInt32 how   // 接続のどの部分をシャットダウンするかを指定する
);

戻り値

  • AEE_NET_SUCCESS: ソケットが正常にシャットダウンされた。
  • IPORT_WAIT: (AEE_AF_INET と AEE_AF_INET6 のみ) 今はシャットダウンできない。後で再試行すること ( ISockPort_Writeable() を参照)。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_EOPNOTSUPP: ソケットタイプが SOCK_STREAM でない。
  • AEE_NET_EINVAL: nHow パラメータが不明。
  • AEE_NET_ENOTCONN: ソケットが接続されていない。
  • AEE_NET_ESHUTDOWN: ソケットが既にシャットダウンされている。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

参照

BREW API ISockPort_Shutdown


SFBSockPort::WriteV
接続済みのソケットにデータを書き込みます。
[ public ]
SInt32 WriteV(
    SockIOBlock const * ioblocks   // データを読み込む SockIoBlock 構造体の配列
    UInt16 count                   // ioblocks 配列のエントリ数を指定する
);

戻り値

  • 書き込んだバイト数 (>0): 正の数は、すべての iov[] バッファから正常に書き出された総バイト数を示す。
  • IPORT_WAIT: 現在はデータをまったく書き込めない。後で再試行すること。 ( SFBSockPort::Writeable() を参照)
  • IPORT_ERROR: 発生したエラーコードは、 SGBSockPort::GetLastError() をコールして取得できる。
  • AEE_NET_EBADF: ソケットが開いていない。
  • AEE_NET_ENOTCONN: ソケットが接続されていない。
  • AEE_NET_ECONNRESET: 接続がサーバーによってリセットされた。
  • AEE_NET_ECONNABORTED: タイムアウトやその他の失敗のため接続が中断された。
  • AEE_NET_EIPADDRCHANGED: アドレスが変更されたため、接続がリセットされた。
  • AEE_NET_EPIPE: パイプが壊れた。
  • AEE_NET_ENETDOWN: ネットワークサブシステムが使用できない。
  • AEE_NET_EFAULT: 無効なアドレスパラメータが指定された。
  • AEE_NET_EINVAL: ストリームソケットでない。
  • AEE_NET_ESHUTDOWN: ソケットがシャットダウンしているため書き込みできない。

他のエラーコードが戻ることもある。

解説

戻り値 IPORT_WAIT が、エラーの戻り値や AEE_NET_EWOULDBLOCK エラーコードの代わりに使用されることに注意してください。

参照

BREW API ISockPort_WriteV