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函数这里
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函数这里
...全文
相关推荐
setsockopt
为解决此问题,可以使用 `SO_REUSEADDR` 选项: ```c BOOL bReuseaddr = TRUE; setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR
setsockopt()改善程序的健壮性
为了避免这个问题,可以使用`SO_REUSEADDR`选项:```c++BOOL bReuseaddr = TRUE;setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const
Linux kernel ip_setsockopt()整数溢出漏洞.pdf
总之,Linux内核ip_setsockopt()整数溢出漏洞是一个严重的安全问题,涉及到多个知名服务器平台,需要系统管理员和开发人员密切关注,并采取有效的应对措施。
setsockopt函数使用说明
在实际应用中,正确使用`setsockopt`可以优化网络通信性能,处理特定场景下的问题,例如避免端口占用冲突,调整网络延迟,或控制数据传输速度等。
Linux下Socket编程的端口问题 ( Bind(): Address already in use ) PDF版
### Linux下Socket编程的端口问题 (Bind(): Address already in use)#### 一、问题背景与常见场景在进行Linux下的网络编程时,经常会遇到端口绑定失败的问题


