setsockopt问题
/*2007-11-14 9:35增加发送超时判断*/
rwto.tv_sec = 7;
rwto.tv_usec= 0;
ilRn = setsockopt(sockfd,SOL_SOCKET,SO_SNDTIMEO,&rwto,sizeof(rwto));
if ( ilRn < 0 )
etsDebug(0,"设置发送超时时间 setsockopt SO_SNDTIMEO error,ilRn=%d ,errno[%d]",ilRn,errno);
/*2007-11-14 9:35增加发送超时判断*/
ilRn = etsTcpsnd(sockfd, alMsgbuf, ilMsglen);
int etsTcpsnd(int sockfd, char *buffer, int length)
{
int len;
int totalcnt;
totalcnt = 0;
while(totalcnt < length)
{
len = write(sockfd, buffer + totalcnt, length - totalcnt);
if (len < 0)
{
if (errno==EINTR)
{
len = 0;
break;
}
else
return (-1);
}
else if (len == 0)
break;
totalcnt = totalcnt + len;
}
if(totalcnt == length)
return(0);
else
return(-1);
}
加了setsockopt为什么还会死在write函数这里