注解KCP源码,用C对其二次封装。

天台道人 发布于 2016/04/06 21:30
阅读 761
收藏 10

开源地址

kcp:https://github.com/skywind3000/kcp

kcpuv:https://github.com/elisaday/kcpuv 可参考,但它用的C++,而且写了若干不太必要的模块,还把C-S混合在一起。

libuv:https://github.com/libuv/libuv/


接包者要求

要求接包者对TCP的底层机制有较深入的理解,现学现卖也可以,但要真懂TCP。


详述

两个工作

1、这个最重要:对比TCP的机制,阅读学习KCP源码,对KCP源码进行透彻的学习和注释,注释时与传统TCP的机制进行对照,必要时可有额外的补充文档。再强调:真懂、对比、透彻

2、基于libuv+kcp封装客户端和服务端,客户端和服务端的代码请保持解耦,当成两个完全不相干的模块,若确有共用代码,比如libuv相关的,可以把共用的libuv相关的代码放在uv_comm.h中。具体说只要4个文件,客户端:kcp.h、kcp.c,服务端:kcp_server.h、kcp_server.c,日志采用printf就可以了。其中两个头文件已经定义了,见附件,可酌情谨慎微调。并编写测试程序client_test和server_test,比如,在服务器上执行.server_test server_post,然后在本机执行./client_test server_ip server_port /dir/filename,将从服务器上下载/dir/filename文件,并计算下载总耗时。代码要求跨平台(Linux、OSX、Windows),测试在Ubuntu下进行,代码注释到位。


代码风格

除了前面涉及的代码要求之外,还要求使用ANSI-C的风格,也就是linux内核的风格。

加载中
0
弃天帝
弃天帝
基于kcp的应用有狗洞,有重写的golang版本,用于nat穿透
0
0
天台道人
天台道人

引用来自“Mok”的评论

慎用
您好,怎么说
0
白日光
白日光
这协议靠谱吗?
返回顶部
顶部