Miao Ge

Results 46 comments of Miao Ge

哪家vps速度这么快?

默认是支持的用的java版本,c版本在linux的我没编译,想用你可以自己编译一下放进去就行了

把参数贴上来看看,conv可以当做客户端与服务器的唯一标识, useConvChannel参数设置是否使用conv当做唯一标识,如果为false的不需要设置conv的值, 当useConvChannel为false,conv字段客户端与服务器不匹配的时候会出现这个错误,

In progress, the library is mainly used for games, so first perform a high load test to find the bug.

在什么情况下会出现很多客户端都是conv为0的情况? 客户端发来的协议的conv都是0吗? 使用ServerConvChannelManager 会使用客户端发来的第一个包里面的conv作为一个链接的唯一标识,在客户端初始化之前需要设计一套conv计算方案确定每一个客户端唯一标识。

useConvChannel的为true的时候使用conv作为一个链接的唯一标识,conv由客户端设置,在一些场景使用很好,比如手机从wifi切换为4g模式,连接不会断开 如果为false的话,conv字段就没有意义,跟tcp的设计思路一样根据端口+ip作为一个链接的唯一标识

是的 > 所以这个就需要使用者明确知道 客户端设置conv值 服务端那个字段useConvChannel 必须设置为true, 对吧~

运行两个KcpRttExampleClient 是两个进程吗? 对于单个Ukcp的连接来说 ScheduleTask,ReadTask,WriteTask其实都是一个线程在运行,都是串行在操作。对于多个Ukcp来说他们都是并行的,这样子业务都是无锁的,这样子单连接串行多连接并行充分利用了多核,对cpu的缓存也友好

如果是同一个进程的话,最佳实践是new一个KcpRttExampleClient实例然后多次调用connect不同的server

这里的线程只处理kcp层的逻辑不会处理网络io,逻辑通过visual分析不是瓶颈,测试的单线程单连接带fec的逻辑处理预计每秒可以处理6万个包,每个包如果算1K的话也有6W*1K字节,这个应该满足99%的业务了,而且并行的话最少可以跑到70%cpu+的性能,整体吞吐量等于 cpu数*6W*1K*70% 如果读写分离必须要加锁,单连接的吞吐可能上去20%,整个系统吞吐量会降低很多。