TCP长链接keep-alive_connection

摘引文章: https://www.gomcu.com/setsockop/

  • 熟悉函数

socket设置选项

1
2
3
#include<sys/types.h>
#include<sys/socket.h>
int setsockopt(int sock,int level,int optanme,const void* optval,socklen_t optlen);

返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
EBADF:sock不是有效的檔描述詞
EFAULT:optval指向的記憶體並非有效的進程空間
EINVAL:在調用setsockopt()時,optlen無效
ENOPROTOOPT:指定的協定層不能識別選項
ENOTSOCK:sock描述的不是通訊端
Nagle演算法設置。


  • vs报错:
    1
    https://jingyan.baidu.com/article/1709ad8097e5904634c4f03e.html

  1. #ifdef 编译时候带参数编译
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifdef TAKE
#define THAT 0

#endif


#ifdef TAKE2
#define THAT 2
#endif


#include<iostream>
using std::cout;
using std::endl;

int main()
{


cout<<THAT<<endl;



}
1
g++ -DTAKE2 ndef.cpp

选择编译TAKE2的宏定义

Fork me on GitHub