Comments (7)
先回答 ikcp_recv 返回值问题:
-1 代表完全没有数据,可以理解成 EAGAIN
-2 代表数据不全(需要后续数据才能作为一个完整包),也可以理解成 EAGAIN
-3 代表你传入的缓存长度不够
你发送的时候少发送点,分多次,或者接受缓存开大点即可解决。
from kcp.
具体参数设置可以参考项目 kcptun,他们做的似乎和你们类似,
按照你的情况,推荐128,128的窗口大小
另kcp快速模式的话:
ikcp_nodelay(kcp1, 1, 10, 2, 1);
kcp1->rx_minrto = 10;
kcp1->fastresend = 1;
from kcp.
将需要发送的数据先放入一个buf里,然后从buf把数据通过ikcp_send()
进行发送,在调用ikcp_send()
前检查ikcp_waitsnd()
是否超过阀值。这样去尝试解决 ikcp_recv()
返回0-1/-2/-3的问题。
from kcp.
- 把 ikcp_recv的buffersize调大。
- ikcp_send的时候一次性少send点东西,for循环几次send,
- kcp->stream = 1 发送端和接收端,流模式。
from kcp.
测试的时候,遇到一种网络现象是,突然流量被掐断,就像所有IP层的包均被丢弃一样,但只要停止一秒,流量又能立即恢复。好像是某个层面做了流量控制,如果遇到这种现象,而kcp依然不停发送大量包,则导致无法通信无法恢复。
- 如何通过ikcp_xxxx()检测此现象
- 如何暂停包发送,是否暂停
ikcp_update()
即可?
from kcp.
@bitkevin 是否两台机器之间有多个 KCP 链接,我这边测试下来 KCP 链接多了就会出现这种现象,加个 mux 就好了
from kcp.
@skywind3000 流模式是双边的吗?需要收发双方同时开启?
from kcp.
Related Issues (20)
- 一次性发送1000个1K的包,需要8-10秒左右 HOT 5
- 关于 ikcp_update HOT 1
- Kcp 相比于 srt 或者 quic 的优势是什么,弱网下回有更好的表现吗 HOT 2
- 请问主动丢包有解决方案了么? HOT 4
- > 没看懂,你要主动丢包么?
- 请问大神,之前在下面这个issue里讨论的丢包问题,什么时候能支持一下呢? HOT 4
- 纯 python 版本实现,申请加入开源案例 HOT 2
- 包模式下如果rcvWnd<255 并且分包数量>=rcvWnd,接受端因为接受不到足够的数量组装完整包而卡住.
- 请教一个关于停止ikcp_update的方法
- 这里检测使用的buffer超过mtu就output一次是不是会导致seg分成两段 HOT 7
- 关于ikcp_check实现的疑问
- test.cpp 运行结果不符合预期 HOT 3
- Multiple multi-thread clients, one server HOT 2
- 关于服务端和多客户端的问题 HOT 6
- 关于上行卡顿,下行包流畅的问题 HOT 7
- 实时流应用场景,crash的疑问 HOT 4
- 关于源码中的慢启动和拥塞避免算法 HOT 3
- 发送端网络受限 ,接收端网络不好,kcp是否会带来改善? HOT 1
- 为每个kcp设置独立的allocator HOT 1
- 使用check机制并不能使cpu使用率下降 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kcp.