getsockopt第四个参数iOpt_Val没有变化,始终为初始值。为啥啊。。。郁闷了

xdh0817 2013-09-26 06:50:01
val = fcntl(sockfd, F_GETFL, NULL);
val |= O_NONBLOCK;
fcntl(sockfd, F_SETFL, val);

/* connect to ca */
is_Err_Connect = connect(sockfd, (struct sockaddr*)&addr_server, sizeof(addr_server));
if(is_Err_Connect < 0)
{
if(EINPROGRESS != errno)
{
close(sockfd);
return -1;
}

time_Connect.tv_set = 3;
time_Connect.tv_uset = 0;
FD_ZERO(&Sock_Fds);
FD_SET(sockfd, &Sock_Fds);
maxfd = sockfd + 1;
iRet_Select = select(maxfd, NULL, &Sock_Fds, NULL, &time_Connect);
if(iRet_Select > 0)
{
iget_Sockopt = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &iOpt_Val, &sock_len);
if(ERROR_SUCCESS != iget_Sockopt)
{
close(sockfd);
return -1;
}
if(ERROR_SUCCESS != iOpt_Val)
{
close(sockfd);
return -1;
}
}
else
{
close(sockfd);
return -1;
}
}
else
{
close(sockfd);
return -1;
}


有个问题,
getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &iOpt_Val, &sock_len);
第四个参数iOpt_Val没有变化,始终为初始值。为啥啊。。。郁闷了
...全文
162 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdh0817 2013-09-26
  • 打赏
  • 举报
回复
该问题已解决~

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧