gpt4 book ai didi

objective-c - 套接字读取和部分数据——需要完整性检查

转载 作者:可可西里 更新时间:2023-11-01 02:34:04 24 4
gpt4 key购买 nike

好的,这是关于从套接字读取的一般问题。

我正在查看某人构建的 Objective C 应用程序,它使用 TCP 套接字库并为“didReadData”设置处理程序,该处理程序接收数据并将其发送到 JSON 解析器。

现在...当我说这基本上是完全错误的时候我是对的吗?套接字读取是否可以返回部分、全部或不返回任何数据,这取决于网络延迟等许多因素?那么,是不是您必须一直从套接字读取数据,直到到达数据的末尾——但这是定界的——然后解析它?因此,例如,对于 JSON,如果您通过 HTTP 发送它,您将发送一个内容长度 header ,它会告诉服务器(或客户端)何时可以停止从套接字读取?所以 - 如果您不使用 http 并使用原始套接字,则必须有一些其他定界符或机制来确定消息的结尾位置。

我想知道这个特定的应用程序是否只在客户端和服务器位于同一主机上的情况下进行过测试——所以我想知道程序员是否认为它可以工作,因为巧合的是,第一次读取总是成功的到现在返回所有数据。

最佳答案

你是对的。

流是无止境的,消息必须用定界符标记。如果您正在测试的应用依赖于流对象来识别没有定界符的消息,这就是问题所在。

问题是这个功能是否以某种方式集成到套接字库中。您使用的是什么库?

关于objective-c - 套接字读取和部分数据——需要完整性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10217756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com