这是一段socket短连接中客户端接收服务端应答的一段代码:
/************接收应答报文****************/
alarm(20);
iRet=read(yktSocketId,recvbuf,2048);
alarm(0);
if(iRet<=0)
{
memset(logbuf,0,sizeof(logbuf));
sprintf(logbuf,"iRet=[%d],File=[%s],Line=[%d]\n",iRet,__FILE__,__LINE__);
lWriteLog(logfile,logbuf,strlen(logbuf),6);
return -1;
}
代码的大意是设置一个20秒的超时时间。如果服务器应答超时,捕捉SIGALARM信号,IRet<=0返回错误信息