0

事情是这样的:

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

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

onSocket: didReadData: withTag:问题:method( ) 调用了多少次?

1)只有一次——它会自动等待直到字节完成?</p>

2)2次或更多次-一些到达(调用),另一些到达(调用)、、、、、像这样?

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

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

4

1 回答 1

0

好吧,也许就是这样。

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

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

编辑

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

我改用了方法-readDataToLength:,先读取header.length的数据,解析,再读取body.length的数据;

于 2012-10-08T06:23:05.877 回答