注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

TCP长连接会不会自动断开?  

2010-07-17 01:43:00|  分类: 网络开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

TCP长连接会不会自动断开?

http://bbs.chinaunix.net/thread-1468806-1-1.html

#include <netinet/tcp.h>//SOL_TCP, TCP_KEEPIDLE 参数的头文件
int keepAlive = 1;   // 开启keepalive属性
int keepIdle = 180;   // 如该连接在180秒内没有任何数据往来,则进行探测
int keepInterval = 5;  // 探测时发包的时间间隔为5 秒
int keepCount = 3;   // 探测尝试的次数.如果第1次探测包就收到响应了,则后2次的不再发.


if((SOCKET = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
    printf("**CreateSocket: error code = %d,error string = %s \n", errno, strerror(errno));
    printf("**CreateSocket: create Socket failed !\n");
  return -1;
}

if(setsockopt(SOCKET, SOL_SOCKET, SO_REUSEADDR, &m, sizeof(int)) != 0)
{
    printf("**CreateSocket: error code = %d,error string = %s \n", errno, strerror(errno));
    return -1;
}

if(setsockopt(SOCKET, SOL_SOCKET, SO_RCVTIMEO, &t, sizeof(struct timeval)) != 0)
{
    printf("**CreateSocket: error code = %d,error string = %s \n", errno, strerror(errno));
    return -1;
}

//SET KEEPALIVE ATTRIBUTE
if(setsockopt(SOCKET, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive)) != 0)
  {
     printf("**BindSocket: error code = %d,error string = %s \n", errno, strerror(errno));
     return -1;
  }

  if(setsockopt(SOCKET, SOL_TCP, TCP_KEEPIDLE, (void*)&keepIdle, sizeof(keepIdle)) != 0)
  {
     printf("**BindSocket: error code = %d,error string = %s \n", errno, strerror(errno));
     return -1;
  }

  if(setsockopt(SOCKET, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval)) != 0)
  {
     printf("**BindSocket: error code = %d,error string = %s \n", errno, strerror(errno));
     return -1;
  }

  if(setsockopt(SOCKET, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount)) != 0)
  {
     printf("**BindSocket: error code = %d,error string = %s \n", errno, strerror(errno));
     return -1;
  }

  评论这张
 
阅读(3491)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016