プログラミングインタフェース

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

非同期的にコネクションを待機する場合、プロセスはまず、サービスアドレスにバインドされた非ブロッキング終端を確立します。poll(2) の結果または非同期通知によってコネクション要求の着信が伝えられた場合、プロセスは t_listen(3NSL) を使用してコネクション要求を取得します。コネクションを受け入れる場合、プロセスは t_accept(3NSL) を使用します。応答用の終端を別に非同期的にデータを転送するように構成する必要があります。

次の例に、非同期的にコネクションを要求する方法を示します。


#include <tiuser.h>
int             fd;
struct t_call   *call;

	fd = .../* 非ブロッキング終端を確立 */

	call = (struct t_call *) t_alloc(fd, T_CALL, T_ADDR);
	.../* call 構造体を初期化 */
	t_connect(fd, call, call);

	/* コネクション要求は現在非同期に行われている */

	.../* コネクションが許可されたことの通知を受信 */
	t_rcvconnect(fd, &call);

次の例に、非同期的にコネクションを待機する方法を示します。


#include <tiuser.h>
int             fd, res_fd;
struct t_call   call;

	fd = ... /* 非ブロッキング終端を確立 */

	.../* コネクション要求が到着したことの通知を受信 */
	call = (struct t_call *) t_alloc(fd, T_CALL, T_ALL);
	t_listen(fd, &call);

	.../* コネクションを許可するかどうかを決定 */
	res_fd = ... /* 応答のため非ブロッキング終端を確立 */
	t_accept(fd, res_fd, call);