CFSocket数据回调

时间:2012-11-05 15:01:33

标签: macos core-foundation cfsocket

有谁知道CFSocket API如何从套接字读取字节到数据回调?我一开始认为它会做一些“幕后”的工作,总是以与发送时相同的长度返回数据但经过一些测试我发现如果我快速发送了大量数据,那么数据就会以块的形式返回,所以我需要使用标题解析数据包。

到目前为止,在测试中我没有收到任何部分数据(例如,如果我发送1000个字节,我总是在数据回调中得到1000但从不少)但我想如果缓冲区真的满了,这可能会发生,我会如果数据包不完整则重建数据包。

我是否基本上需要使用与CFSocket相同的数据包读取策略,我将使用BSD套接字,即为每个数据包添加一个包含长度的标头,在数据包长度上解析数据流,如果数据包不完整则重新组合数据在再次调用回调时。

谢谢!

0 个答案:

没有答案