ZLMediaKit/ZLToolKit

如何处理send数据不完整的情况

jococi opened this issue · 6 comments

通过send方法发送数据时,在网络不稳定的情况下出现了待发送数据大小和返回的已发送数据大小不相等(部分发送成功),请问这种情况我是需要继续发送剩下的部分还是直接断开链接呢?怎样处理最优雅?

你在咨询zltoolkit的问题吗?

如果数据不重要 可以直接丢弃 如果是重要的数据 那么需要等待flush

如果数据不重要可以直接丢弃 如果是重要的数据则需要等待flush

哦,也就是说,在send后即使数据没有完成,内部会继续发送剩余的数据的,那么如果在等待flush的过程中我又调用了send方法会怎样能,数据包顺序会不会被错乱?

在send后即使数据没有完成,内部会继续发送剩余的数据的,那么如果在等待flush的过程中我又调用了send方法会怎样能,数据包顺序会不会被错乱?

不会错乱;否则zlmediakit咋工作啊?
send部分成功时 说明socket blocked的;这个时候zltoolkit会添加可写监听的,等网络畅通了,会自己继续写数据的,不需要你手动触发。

好的谢谢,我测试一下