非同期的にコネクションを待機する場合、プロセスはまず、サービスアドレスにバインドされた非ブロッキング終端を確立します。poll(2) の結果または非同期通知によってコネクション要求の着信が伝えられた場合、プロセスは t_listen(3NSL) を使用してコネクション要求を取得します。コネクションを受け入れる場合、プロセスは t_accept(3NSL) を使用します。応答用の終端を別に非同期的にデータを転送するように構成する必要があります。
#include <tiuser.h> int fd; struct t_call *call; fd = /* establish a non-blocking endpoint */ call = (struct t_call *) t_alloc(fd, T_CALL, T_ADDR); /* initialize call structure */ t_connect(fd, call, call); /* connection request is now proceeding asynchronously */ /* receive indication that connection has been accepted */ t_rcvconnect(fd, &call);
#include <tiuser.h> int fd, res_fd; struct t_call call; fd = /* establish non-blocking endpoint */ /*receive indication that connection request has arrived */ call = (struct t_call *) t_alloc(fd, T_CALL, T_ALL); t_listen(fd, &call); /* determine whether or not to accept connection */ res_fd = /* establish non-blocking endpoint for response */ t_accept(fd, res_fd, call);