Created KCP Basic Usage (markdown)

skywind3000 2014-12-30 01:45:14 -08:00
parent a4b3591362
commit 0ff93bea27

41
KCP-Basic-Usage.md Normal file

@ -0,0 +1,41 @@
基本使用
=======
* 创建 KCP对象
```cpp
// 初始化 kcp对象conv为一个表示会话编号的整数和tcp的 conv一样通信双
// 方需保证 conv相同相互的数据包才能够被认可user是一个给回调函数的指针
ikcpcb *kcp = ikcp_create(conv, user);
```
* 设置回调函数:
```cpp
// KCP的下层协议输出函数KCP需要发送数据时会调用它
// buf/len 表示缓存和长度
// user指针为 kcp对象创建时传入的值用于区别多个 KCP对象
int udp_output(const char *buf, int len, ikcpcb *kcp, void *user)
{
....
}
// 设置回调函数
kcp->output = udp_output;
```
* 循环调用 update
```cpp
// 以一定频率调用 ikcp_update来更新 kcp状态并且传入当前时钟毫秒单位
// 如 10ms调用一次或用 ikcp_check确定下次调用 update的时间不必每次调用
ikcp_update(kcp, millisec);
```
* 输入一个下层数据包:
```cpp
// 收到一个下层数据包比如UDP包时需要调用
ikcp_input(kcp, received_udp_packet, received_udp_size);
```
处理了下层协议的输出/输入后 KCP协议就可以正常工作了使用 ikcp_send来向远端发
送数据。而另一端使用ikcp_recv(kcp, ptr, size)来接收数据。