skywind3000 / kcp

:zap: KCP - A Fast and Reliable ARQ Protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

实时流应用场景,crash的疑问

LiuAriel opened this issue · comments

1、nodelay设置:ikcp_nodelay(kcp_handle, 0, 10, 0, 1);
ikcp_setmtu(kcp_handle, 1400);

2、snd_wnd, rcv_wnd设置:ikcp_wndsize(kcp_handle, 1024, 1024);
3、ikcp_update 频率 10ms,也使用过5ms
4、 ikcp_waitsnd 的值最大值没超过180
5、 ikcp_flush发送后会调用,不管调用与否都会crash

6、发送数据每间隔5ms发送1200字节数据
7、两端以上的参数都是如此设置

提前是,没加kcp直接用udp发送程序无异常。
出现的问题:主要是发送几秒钟数据,然后crash在发送数据端 ikcp_update或者ikcp_send,或者系统直接busy,进程退出。

主要是问下,需要怎么修改参数配置或者引起的原因,目前也在边研究边调试。

是不是多线程操作 kcp 对象?

是不是多线程操作 kcp 对象?

下班回来地路上也是怀疑到这个,请问一下,kcp_send,kcp_recv,kcp_update各自一个线程中,是不是只需要把send、recv用互斥锁即可,update不用?三个共用同一个对象kcp_handle

libuv这样,由于系统flash限制,没办法用了

怎么可能,正确的用法是全部在一个线程里操作 kcp 对象。
退一万步,你非得多线程,那么所有接口都要加锁。

怎么可能,正确的用法是全部在一个线程里操作 kcp 对象。 退一万步,你非得多线程,那么所有接口都要加锁。

好的,感谢!