IOS:AsyncSocket - readData方法的调用机制

时间:2012-09-28 02:24:50

标签: ios invoke asyncsocket

事情是这样的:

我使用AsyncSocket连接服务器。当服务器向客户端at a time发送一些字节时,app将调用(onSocket: didReadData: withTag:)方法;有时,由于网络或其他原因,一些字节到达,其余字节到达(这意味着一些字节被延迟)。(timeOut = -1)

==================================

问题:该方法(onSocket: didReadData: withTag:)调用了多少次?

1)只有一次 - 它会自动等待,直到字节完成?

2)2次或更多次 - 一些到达(调用),其他到达(调用),,,,,喜欢这样?

===================================

哪些想法是对的?请给我一些建议。非常感谢。

1 个答案:

答案 0 :(得分:0)

好的,也许就是这样。

在TCP上传输数据:当您一次发送1000个字节时,由于延迟或其他原因,您可能会先收到900个字节,但TCP套接字将等待其余100个字节 自动。因此,如果我使用asyncSocket传输数据并设置超时,那么在这几秒钟内,我不需要处理滞后数据。

=========================

修改

也许问题的标题不合适,没有人关心这个问题。

我使用方法-readDataToLength:,先读取header.length数据,然后解析它,然后读取body.length数据;