编程接口指南

异步使用连接

要异步等待连接,进程应首先建立一个绑定到服务地址的非阻塞端点。当 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);