socket通常翻译为
用到套接字(文件描述符)超时的地方很广泛,尤其在网络编程方面,为了便于以后编程时候少敲几行代码,本人特意封装了一个接口函数简化socket超时时间的设置过程,特拿出来与大家分享。改函数有三个参数,分别是要设置的套接字、要指定的读超时时间(单位:秒)、要指定的写超时时间(单位:秒)。如果设置成果则返回0,否则返回-1。
int set_sock_time(int fd, int read_sec, int write_sec)
{
struct timeval send_timeval;
struct timeval recv_timeval;
if(fd <= 0) return -1;
send_timeval.tv_sec = write_sec<0?0:write_sec;
send_timeval.tv_usec = 0;
recv_timeval.tv_sec = read_sec<0?0:read_sec;;
recv_timeval.tv_usec = 0;
if(setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &send_timeval, sizeof(send_timeval)) == -1)
{
return -1;
}
if(setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &recv_timeval, sizeof(recv_timeval)) == -1)
{
return -1;
}
return 0;
}
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。