標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 | 両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <xti.h>
int t_rcvconnect(int fd, struct t_call *call);
呼び出しトランスポート・ユーザーは、前に送信された接続要求の 状況を判別できます。t_rcvconnect() は、非同期モードで接続を確立するために t_connect() と 一緒に使用されます。この関数が正常に終了すると、接続が確立されます。
struct netbuf addr;
struct netbuf opt;
struct netbuf udata;
int sequence;
call では、addr は
応答トランスポート終点と関連したプロトコル・アドレスを
戻します。opt は、接続と関連している任意のオプションを示して
います。udata は、TCP トランスポート提供者が接続の確立時に
ユーザー・データの伝送をサポートしないので無意味です。sequence は、この関数に対して意味はありません。各引数の maxlen フィールドは、それぞれの バッファーの最大サイズを示すためにこの関数を発行する前に 設定する必要があります。しかし、call は NULL ポインターになることが あります。この場合には、t_rcvconnect() からの戻り時に情報は ユーザーに提供されません。デフォルトで、t_rcvconnect() は同期モードで実行し、接続が戻る前に確立されるのを待機します。戻り時には、addr フィールドにリモート終点のアドレスが 含まれ、opt はユーザーが入力時に指定したオプションの ネゴシエーションの結果を反映します。
O_NONBLOCK が (t_open() または fcntl() を使用して) 設定された場合には、t_rcvconnect() は、非同期モードで実行し、既存の接続確認のポーリングまで削減します。使用できるものが何もない場合には、t_rcvconnect() は失敗し、接続の確立を待機しないで即時に戻ります(以下の TNODATA を参照してください)。この場合には、接続確立フェーズを完了し、呼び出しに戻された情報を 検索するために、t_rcvconnect() を再度呼び出す必要があります。
有効状態: T_OUTCON
正常に実行された場合、t_rcvconnect() は 0 を戻します。