mirror of
https://github.com/skywind3000/kcp.git
synced 2025-04-28 16:10:14 +08:00
Updated KCP Best Practice (markdown)
parent
9540052369
commit
bdf602c1c2
@ -36,4 +36,18 @@ P3 = (3, 2, 1)
|
||||
|
||||
#### 协议栈分层组装
|
||||
|
||||
不要试图将任何加密或者 FEC相关代码实现到 KCP里面,请实现成不同协议单元并组装成你的协议栈,具体请看:[协议栈分层组装](https://github.com/skywind3000/kcp/wiki/Network-Layer)
|
||||
不要试图将任何加密或者 FEC相关代码实现到 KCP里面,请实现成不同协议单元并组装成你的协议栈,具体请看:[协议栈分层组装](https://github.com/skywind3000/kcp/wiki/Network-Layer)
|
||||
|
||||
#### 同时支持发送可靠和非可靠数据
|
||||
|
||||
有的产品可能除了需要可靠数据,还需要发送非可靠数据,那么 KCP 如何支持这种需求呢?很简单,你自己实现:
|
||||
|
||||
```c
|
||||
connection.send(channel, pkt, size);
|
||||
```
|
||||
|
||||
channel == 0 使用 kcp 发送可靠包,channel == 1 使用 udp 发送非可靠包。
|
||||
|
||||
因为传输是你自己实现的,你可以在发送UDP包的头部加一个字节,来代表这个channel,收到远程来的 UDP以后,也可以判断 channel==0 的话,把剩下的数据给 ikcp_input,否则剩下的数据为远程非可靠包。
|
||||
|
||||
这样你得到了一个新的发送函数,用channel来区别你想发送可靠数据还是非可靠数据。游戏里每秒钟继续30个包的非可靠,然后参杂一些可靠包,拆分下你的消息。
|
Loading…
Reference in New Issue
Block a user