#include <iostream>
#include <ctime>
struct Connection
{
int sockfd;
time_t lastActiveTime;
//构造函数
Connection(int fd) : sockfd(fd), lastActiveTime(time(nullptr)) {}
//更新最后活动时间
void updateActivity()
{
lastActiveTime = time(nullptr);
}
//检查连接是否空闲
bool isIdle(int timout)
{
if (difftime(time(nullptr), lastActiveTime) > timout)
{
return true;
}
return false;
}
}
定义一个Connection结构体,int sockfd 成员变量用于存储与该连接相关联的套接字描述符。
time_t lastActiveTime成员变量用于存储最后一次活动的时间。这个时间戳在连接被创建时通过构造函数初始化,可以根据updataActivity方法更新。
bool isIdle(int time)方法用于检测连接是否在给定的时间timeout(以秒为单位)内没有活动。如果连接空闲时间超过timeout,则返回false,反之。