kcp笔记

本文介绍了 KCP 协议的使用方法和功能实现,包括如何创建连接、发送与接收数据、确认机制、有序可靠传输的原理以及拥塞控制和流量控制的策略。KCP 通过滑动窗口和确认机制确保数据的有序和可靠性,同时提供了快速重传和拥塞控制功能来优化网络传输效率。
摘要由CSDN通过智能技术生成

请配合源码食用——。——“”。

1,使用

  1. ikcp_create(IUINT32 conv, void *user);通过使用这个函数创建tcp链接,参数conv用来确认两端通信,即发送端和接收端的conv要一致;参数user则是上层用来区分这个链接属于谁。
  2. ikcp_update(ikcpcb *kcp, IUINT32 current);上层负责通过轮询的方式定期调用(官方文档说每10ms-100ms调用1次),用来进行把缓冲区数据发送出去,或者进行重传,应答对方请求等,真正发送数据函数,参数current为当前时间戳,单位ms。
  3. int ikcp_send(ikcpcb *kcp, const char *buffer, int len);上层把要发送的数据通过这个接口上报到缓冲区。
  4. ikcp_input(ikcpcb *kcp, const char *data, long size);当上层收到数据后通个这个接口把数据输入给kcp,以便给kcp解析和对发送缓冲区进行处理,因为从recvfrom收到消息后,这个消息并不是纯粹的消息,里面有kcp头协议,有可能是对端发来的ack或者询问信息的等。
  5. ikcp_recv(ikcpcb *kcp, char *buffer, int len);上层通过这个接口把消息取出来,这个时候取到的消息就是纯粹的发送端发送的消息。
  6. ikcp_release(ikcpcb *kcp);销毁kcp链接
  7. int (*output)(const char *buf, int len, struct IKCPCB *kcp, void *user);这个是函数指针,指向真正发送函数如sendto的地方,需要自己赋值。</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值