caobo56 / KCPDemo

iOS 通讯UDP/KCP协议的使用
MIT License
23 stars 9 forks source link

KCP不断触发output回调 #1

Closed Leppard closed 6 years ago

Leppard commented 6 years ago

send一次数据之后,KCP设置的output回调会不断的在update的时候触发,试了下你的demo也有这个问题。。。把超时重发关闭也是一样,不知道你有没有注意到这个问题。。。

caobo56 commented 6 years ago

我不太清楚你调试的时候问题出在哪里。 我只能说一下我的测试步骤: 1.在PC端启动java jkcp程序。kcp设置如readme 中所述。 2.启动一台真机测试。此时,真机程序kcp设置也如readme 中所述。 3.向PC的IP地址发送数据。(当然PC和真机应该在同一局域网内)。 测试结果:PC端日志收到数据。

需要注意的是,不能用一台mac,既开了jkcp程序,又开启模拟器,直接发送数据。这样会造成后开启的无法绑定端口。

caobo56 commented 6 years ago

“KCP不断触发output回调“,是因为 发送端 发送的数据,会在KCP层被拆成一组KCP数据包,在发送完这组之后, 应该有一条来自 接收端KCP层 自动回复的回执 回复给 发送端。发送端没有接受到这条回执,就会一直发送数据,以要求那条回执,close发送过程。

Leppard commented 6 years ago

对的,之后自己去研究了一下KCP原理,接收端接收到数据之后会有确认包发回给发送方,这个过程对上层来说算是透明的,感谢解答!