linux 判断socket是否连接中,,,,,

奥斯丁火 2012-11-28 08:51:05
bool netCheckClientInConn(STRUCT_clientconn *clientconn)
{
if (clientconn == NULL)
return false;
int optval, optlen;
optlen = sizeof(int);
int ret = getsockopt(clientconn->sockfd, SOL_SOCKET, SO_ERROR, (char*)&optval, &optlen);
return (!ret && !optval);
}


这里的clientconn->sockfd指的是客户端的连接套接字标志

上面函数返回值表示客户端socket是否连接中,

我写的函数当客户端主动断开后还是一直认为socket正在连接中,,请问我的判断应该怎么写,求指点?
...全文
547 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayw215 2012-11-28
  • 打赏
  • 举报
回复
为什么需要判断是否在链接中? 程序的逻辑有点问题 读写的时候 失败了 close即可,为啥需先判断呢
xumaojun 2012-11-28
  • 打赏
  • 举报
回复
弄个心跳检测吧
奥斯丁火 2012-11-28
  • 打赏
  • 举报
回复
当在recv的buf长度为0是否可以认定当前socke已经退出?
奥斯丁火 2012-11-28
  • 打赏
  • 举报
回复
send方法不是正统的写法哦,,
oniisama 2012-11-28
  • 打赏
  • 举报
回复
试试先send一次0字节

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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