【发布时间】:2012-11-30 06:48:48
【问题描述】:
我正在一个套接字上进行一次非阻塞发送调用,然后在另一个套接字上进行阻塞接收。之后我想检查非阻塞发送是成功还是失败。如何做到这一点?
while (i)
{
retval = send (out_sd, s_message, strlen (s_message), MSG_DONTWAIT);
retval = recv (client_sd, r_message, MSG_LEN, 0);
r_message[retval] = '\0';
/* Here I want to wait for the non-blocking send to complete */
strcpy (s_message, r_message);
strcpy (r_message, "");
i--;
}
【问题讨论】:
-
可以使用回调吗?
-
我不这么认为。在进入下一次迭代之前,只需要检查消息发送是否失败或成功或排队。
-
使用两个不同的 var/s 来存储 send/recv 的结果。