结构化绑定
结构化绑定允许你用一个对象的元素或成员同时实例化多个实体。
概念
1 | struct Test |
看看如下函数定义:
1 | DoSomething(char (&arr) [10]); // 10个元素的数组, sizeof(arr)==10*sizeof(char)==10 |
通常我们为了程序的复用性,会使用最后DoSomething(char *arr, size_t n);
的形式,通过传入字符指针和长度灵活处理。但可能出现以下情况:
1 | char str[10]; |
首先看看官网的介绍:
1 | KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据的发送方式,以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部不会有任何一次系统调用。 |
简而言之,KCP
不像TCP
那样大公无私,它只会保证自己的传输速率,不管整个网络的拥塞情况。
TCP
的特点是可靠传输(累积确认、超时重传、选择确认)、流量控制(滑动窗口)、拥塞控制(慢开始、拥塞避免、快重传、快恢复)。KCP
对这些参数都可配,且不需要建立/关闭连接的过程。