• 网络连接的保活机制(心跳机制转)


    1. typedef struct STcpKeepAlive2 
       2. { 
       3.     DWORD onoff; 
       4.     DWORD keepalivetime; 
       5.     DWORD keepaliveinterval; 
       6.      
       7. }TCP_KEEP_ALIVE2; 
       8.  
       9. VOID SetKeepLive(SOCKET m_Socket) 
      10. { 
      11.     const char chOpt = 1; // True 
      12.     // Set KeepAlive 开启保活机制, 防止服务端产生死连接 
      13.     if (setsockopt(m_Socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&chOpt, sizeof(chOpt)) == 0) 
      14.     { 
      15.         // 设置超时详细信息 
      16.         TCP_KEEP_ALIVE2 klive; 
      17.         klive.onoff = 1; // 启用保活 
      18.         klive.keepalivetime = 1000 * 15; // 3分钟超时 Keep Alive 
      19.         klive.keepaliveinterval = 1000 * 5; // 重试间隔为5秒 Resend if No-Reply 
    20.         WSAIoctl 
      21.             ( 
      22.             m_Socket,  
      23.             SIO_KEEPALIVE_VALS, 
      24.             &klive, 
      25.             sizeof(TCP_KEEP_ALIVE2), 
      26.             NULL, 
      27.             0, 
      28.             (unsigned long *)&chOpt, 
      29.             0, 
      30.             NULL 
      31.             ); 
      32.     } 
      33. } 
  • 相关阅读:
    线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
    C#打印图片
    javascript 地址栏写法
    SQLServer获取Excel中所有Sheet
    C#多页打印实现
    clear在CSS中的妙用
    mitmproxy使用总结
    本地回路抓包问题
    博客园界面优化
    CentOS基于MySQL提供的Yum repository安装MySQL5.6
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/1494779.html
Copyright © 2020-2023  润新知