网络编程中,在和服务器通信时,会出现卡死在fgets中。当connect服务器之后,拔掉网线,fgets获取不到服务器信息,则一直堵塞。因此需要设置超时。
#include <
sys/types.h>
#include <sys/socket.h>
int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);
struct timeval TimeOut;
TimeOut.tv_sec = 3;
TimeOut.tv_usec = 0;
//发送时限
setsockopt( socket, SOL_SOCKET, SO_SNDTIMEO, ( char * )&TimeOut, sizeof( TimeOut) );
//接收时限
setsockopt( socket, SOL_SOCKET, SO_RCVTIMEO, ( char * )&TimeOut, sizeof( TimeOut) );