JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
プログラミングインタフェースガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  メモリーと CPU の管理

2.  リモート共有メモリー API (Solaris クラスタ用)

3.  セッション記述プロトコル API

4.  プロセススケジューラ

5.  近傍性グループ API

6.  入出力インタフェース

7.  プロセス間通信

8.  ソケットインタフェース

9.  XTI と TLI を使用したプログラミング

XTI と TLI について

XTI/TLI 読み取り用インタフェースと書き込み用インタフェース

データの書き込み

データの読み取り

コネクションを閉じる

XTI/TLI の拡張機能

非同期実行モード

XTI/TLI の高度なプログラミング例

非同期ネットワーキング

ネットワークプログラミングモデル

非同期コネクションレスモードサービス

終端の非同期化

非同期ネットワーク転送

非同期コネクションモードサービス

非同期的なコネクションの確立

非同期的なコネクションの使用

非同期的に開く

ファイル記述子の転送

状態遷移

XTI/TLI 状態

送信イベント

受信イベント

状態テーブル

プロトコルに依存しない処理に関する指針

XTI/TLI とソケットインタフェース

ソケットと XTI/TLI の対応関係

XTI インタフェースへの追加

10.  パケットフィルタリングフック

11.  トランスポート選択と名前からアドレスへのマッピング

12.  リアルタイムプログラミングと管理

13.  Solaris ABI と ABI ツール

A.  UNIX ドメインソケット

索引

状態遷移

次のセクションの表は、XTI/TLI 関連のすべての状態遷移を説明します。

XTI/TLI 状態

次の表に、XTI/TLI の状態遷移で使用される状態とサービスタイプを定義します。

表 9-1 XTI/TLI 状態遷移とサービスタイプ

状態
説明
サービスタイプ
T_UNINIT
初期化が行われていない - インタフェースの初期状態と終了状態
T_COTST_COTS_ORDT_CLTS
T_UNBND
初期化されているが、バインドされていない
T_COTST_COTS_ORDT_CLTS
T_IDLE
コネクションが確立されていない
T_COTST_COTS_ORDT_CLTS
T_OUTCON
クライアントに対する送信コネクションが保留中
T_COTST_COTS_ORD
T_INCON
サーバーに対する受信コネクションが保留中
T_COTST_COTS_ORD
T_DATAXFER
データ転送
T_COTST_COTS_ORD
T_OUTREL
送信正常型解放 (正常型解放要求待ち)
T_COTS_ORD
T_INREL
受信正常型解放 (正常型解放要求の送信待ち)
T_COTS_ORD

送信イベント

次の表に示す送信イベントは、指定されたトランスポートルーチンから返されるステータスに対応しており、このようなイベントにおいて、これらのルーチンはトランスポートプロバイダに要求または応答を送信します。この表で示すイベントの一部 (accept など) は、発生した時点におけるコンテキストによって意味が変わります。これらのコンテキストは、次の変数の値に基づきます。

表 9-2 送信イベント

イベント
説明
サービスタイプ
opened
t_open(3NSL) が正常に終了した
T_COTST_COTS_ORDT_CLTS
bind
t_bind(3NSL) が正常に終了した
T_COTST_COTS_ORDT_CLTS
optmgmt
t_optmgmt(3NSL) が正常に終了した
T_COTST_COTS_ORDT_CLTS
unbind
t_unbind(3NSL) が正常に終了した
T_COTST_COTS_ORDT_CLTS
closed
t_close(3NSL) が正常に終了した
T_COTST_COTS_ORDT_CLT
connect1
同期モードの t_connect(3NSL) が正常に終了した
T_COTST_COTS_ORD
connect2
非同期モードの t_connect(3NSL)TNODATA エラーが発生したか、あるいは、切断要求がトランスポート終端に着信したことにより TLOOK エラーが発生した
T_COTST_COTS_ORD
accept1
ocnt == 1fd == resfd を指定した t_accept(3NSL) が正常に終了した
T_COTST_COTS_ORD
accept2
ocnt == 1fd != resfd を指定した t_accept(3NSL) が正常に終了した
T_COTST_COTS_ORD
accept3
ocnt > 1 を指定した t_accept(3NSL) が正常に終了した
T_COTST_COTS_ORD
snd
t_snd(3NSL) が正常に終了した
T_COTST_COTS_ORD
snddis1
ocnt <= 1 を指定した t_snddis(3NSL) が正常に終了した
T_COTST_COTS_ORD
snddis2
ocnt > 1 を指定した t_snddis(3NSL) が正常に終了した
T_COTST_COTS_ORD
sndrel
t_sndrel(3NSL) が正常に終了した
T_COTS_ORD
sndudata
t_sndudata(3NSL) が正常に終了した
T_CLTS

受信イベント

受信イベントは、指定されたルーチンが正常に終了したときに発生します。これらのルーチンは、トランスポートプロバイダからのデータやイベント情報を返します。ルーチンから返された値に直接関連付けられていない唯一の受信イベントは pass_conn であり、このイベントはコネクションが他の終端に移行するときに発生します。終端で XTI/TLI ルーチンを呼び出さなくても、コネクションを渡している終端ではこのイベントが発生します。

次の表では、rcvdis イベントは、終端上の未処理のコネクション要求の数を示す ocnt の値によって区別されます。

表 9-3 受信イベント

イベント
説明
サービスタイプ
listen
t_listen(3NSL) が正常に終了した
T_COTST_COTS_ORD
rcvconnect
t_rcvconnect(3NSL) が正常に終了した
T_COTST_COTS_ORD
rcv
t_rcv(3NSL) が正常に終了した
T_COTST_COTS_ORD
rcvdis1
onct <= 0 を指定した t_rcvdis(3NSL) が正常に終了した()
T_COTST_COTS_ORD
rcvdis2
ocnt == 1 を指定した t_rcvdis(3NSL) が正常に終了した
T_COTST_COTS_ORD
rcvdis3
ocnt > 1 を指定した t_rcvdis(3NSL) が正常に終了した
T_COTST_COTS_ORD
rcvrel
t_rcvrel(3NSL) が正常に終了した
T_COTS_ORD
rcvudata
t_rcvudata(3NSL) が正常に終了した
T_CLTS
rcvuderr
t_rcvuderr(3NSL) が正常に終了した
T_CLTS
pass_conn
渡されたコネクションを受信した
T_COTST_COTS_ORD

状態テーブル

状態テーブルは、XTI/TLI の状態遷移を示します。状態テーブルの列には現在の状態を、行には現在のイベントを、行と列の交差する部分では次に発生する状態を示しています。次に発生する状態が空の場合は、状態とイベントの組み合わせが無効であることを意味します。また次に発生する状態には、動作一覧が示されている場合もあります。動作は、指定された順序で実行する必要があります。

状態テーブルを見る場合は、次の点を理解してください。

次の表の状態遷移には、トランスポートユーザーが行う必要がある動作が記載されているものもあります。各動作は、次のリストから求められた数字によって表現されます。

次の表に、終端の確立の状態を示します。

表 9-4 コネクション確立時の状態

イベント/状態
T_UNINIT
T_UNBND
T_IDLE
opened
T_UNBND
bind
T_IDLE[1]
optmgmt (TLI のみ)
T_IDLE
unbind
T_UNBND
closed
T_UNINIT

次の表に、コネクションモードにおけるデータの転送の状態を示します。

表 9-5 コネクションモードにおける状態: その 1

イベント/状態
T_IDLE
T_OUTCON
T_INCON
T_DATAXFER
connect1
T_DATAXFER
connect2
T_OUTCON
rcvconnect
T_DATAXFER
listen
T_INCON [2]
T_INCON [2]
accept1
T_DATAXFER [3]
accept2
T_IDLE [3] [4]
accept3
T_INCON [3] [4]
snd
T_DATAXFER
rcv
T_DATAXFER
snddis1
T_IDLE
T_IDLE [3]
T_IDLE
snddis2
T_INCON [3]
rcvdis1
T_IDLE
T_IDLE
rcvdis2
T_IDLE [3]
rcvdis3
T_INCON [3]
sndrel
T_OUTREL
rcvrel
T_INREL
pass_conn
T_DATAXFER
optmgmt
T_IDLE
T_OUTCON
T_INCON
T_DATAXFER
closed
T_UNINIT
T_UNINIT
T_UNINIT
T_UNINIT

次の表に、コネクションモードにおけるコネクションの確立、コネクションの解放、およびデータの転送の状態を示します。

表 9-6 コネクションモードにおける状態: その 2

イベント/状態
T_OUTREL
T_INREL
T_UNBND
connect1
connect2
rcvconnect
listen
accept1
accept2
accept3
snd
T_INREL
rcv
T_OUTREL
snddis1
T_IDLE
T_IDLE
snddis2
rcvdis1
T_IDLE
T_IDLE
rcvdis2
rcvdis3
sndrel
T_IDLE
rcvrel
T_IDLE
pass_conn
T_DATAXFER
optmgmt
T_OUTREL
T_INREL
T_UNBND
closed
T_UNINIT
T_UNINIT

次の表に、コネクションレスモードにおける状態を示します。

表 9-7 コネクションレスモードでの状態

イベント/状態
T_IDLE
snudata
T_IDLE
rcvdata
T_IDLE
rcvuderr
T_IDLE