linux客户端如何检测socket断开,完全实现linux下SOCKET连接断开判断,已经测试通过了,取得小小突破...

完全实现linux下SOCKET连接断开判断,已经测试通过了,取得小小突破

(2012-06-13 02:58:59)

标签:

linux

测试

杂谈

完全实现linux下SOCKET连接断开判断,已经测试通过了,取得小小突破link:

http://libsbase.googlecode.com/svn/trunk/0.0.2/netcheck-0.0.3.tar.gz

int netcheck(int fd)

{

int buf_size = 1024;

char buf;

//clear OOB DATA

recv(fdhttp://www.pwkservicecenter.com/, buf, buf_size);

if(send(fd, (void *)"\0", 1,

MSG_OOB) < 0 )

{

fprintf(stderr, "Connection[%d] send OOB failed,

%s", fd, strerror(errno));

return -1;

}

return 0;

}

//int keep_alive = 1;//设定KeepAlive

//int keep_idle = 1;//开始首次KeepAlive探测前的TCP空闭时间

//int keep_interval = 1;//两次KeepAlive探测间的时间间隔

//int keep_count = 3;//判定断开前的KeepAlive探测次数

void set_keepalive(int fd, int keep_alive, int keep_idle, int

keep_interval, int keep_count)

{

int opt = 1;

if(keep_alive)

{

if(setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE,

(void*)&keep_alive, sizeof(keep_alive)) ==

-1)

{

fprintf(stderr,

"setsockopt SOL_SOCKET::SO_KEEPALIVE

failedhttp://www.fm760.com/,

%s\n",strerror(errno));

}

if(setsockopt(fd, SOL_TCP, TCP_KEEPIDLE,

(void *)&keep_idle,sizeof(keep_idle)) == -1)

{

fprintf(stde

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值