我被要求用C中的UDP数据包实现选择性重复协议。我不能使用线程。有人告诉我使用select
函数。目前,我的程序看起来像这样。发送方和接收方程序都将执行此循环,以便分别向另一方发送数据和确认:
fd_set sfds;
FD_ZERO(&sfds);
while(true)
{
FD_SET(socket_file_descriptor,&sfds);
select(socket_file_descriptor + 1,&sfds, NULL, NULL, NULL);
if(FD_ISSET(socket_file_descriptor, &sfds))
{
//...
}
}
问题:如何实现发送方的循环,以便为每个要发送的数据包设置计时器?我听说select
有一个timeout
参数,但我不确定如何帮助管理多个计时器。