kcpp

因为 KCP 官方群已经满了, 可以加群 496687140

轻量级的kcp会话实现-kcpp

kcpp真正实现了只需要包含一个头文件再随意写几行代码就可以用上kcp, 而无需烦心如何组织代码来适配kcp

  • 只需包含 kcpp.h 这一个头文件即可
  • 只需调用 KcpSession::SendKcpSession::RecvKcpSession::Update 即可完成UDP的链接状态管理、会话控制、 RUDP协议调度

Features

  • single-header-only
  • session implementation
  • dynamic redundancy
  • two-channel
    • reliable
    • unreliable

kcpp Examples

kcpp Usage

the main loop was supposed as:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20大专栏  an>
21
22
23
24
25
Game.Init()


kcpp::KcpSession (
KcpSession::RoleTypeE,
std::bind(udp_output, _1, _2),
std::bind(udp_input),
std::bind(timer));

while (!isGameOver)
myKcpSess.Update()

while (myKcpSess.Recv(data, len))
if (len > 0)
Game.HandleRecvData(data, len)
else if (len < 0)
Game.HandleRecvError(len);

if (myKcpSess.CheckCanSend())
myKcpSess.Send(data, len)
else
Game.HandleCanNotSendForNow()

Game.Logic()
Game.Render()

The Recv/Send/Update functions of kcpp are guaranteed to be non-blocking.
Please read TestKcppClient.cpp and TestKcppServer.cpp for some basic usage.

kcp源码注释

本项目还附了一个注释版的kcp源码 ikcp.hikcp.c, 算是另一种的 kcp详解, 方便自己学习也为大家更快的上手, 原始代码来自: https://github.com/skywind3000/kcp , 感谢 skywind3000 带来

. . .

猜你喜欢

转载自www.cnblogs.com/liuzhongrong/p/12346622.html