网络编程中的 select() 函数及 TCP 客户端与服务器实现
1. select() 函数的超时设置
在网络编程中, select() 函数是一个非常重要的工具,它允许我们同时监视多个文件描述符(包括套接字)的状态变化。 select() 函数的最后一个参数可以用来指定超时时间,它期望一个指向 struct timeval 的指针。 struct timeval 结构体的定义如下:
struct timeval {
long tv_sec;
long tv_usec;
};
其中, tv_sec 存储秒数, tv_usec 存储微秒数(1 微秒是百万分之一秒)。如果我们希望 select() 函数最多等待 1.5 秒,可以这样调用:
struct timeval timeout;
timeout.tv_sec = 1;
timeout.tv_usec = 500000;
select(max_socket+1, ©, 0, 0, &timeout);
在这种情况下, select() 函数会在 fd_set copy 中的某个套接字准备好读取数据或者 1.5 秒时间过去后返回,以先发生的情况为
超级会员免费看
订阅专栏 解锁全文
783

被折叠的 条评论
为什么被折叠?



