さて、これはソケットからの読み取りに関する一般的な質問です。
TCPソケットライブラリを使用し、データを取得してJSONパーサーに送信する「didReadData」のハンドラーを設定する、誰かが構築したObjective Cアプリを見ています。
さて...これは基本的に完全に間違っていると言うのは正しいですか? ネットワーク遅延などの多くの要因に応じて、ソケット読み取りでデータの一部またはすべてが返されるか、またはまったく返されない可能性がありますか? では、データの最後に到達するまでソケットから読み取り続けなければならないのではありませんか?ただし、それは区切られていますが、それを解析しますか? たとえば、JSON の場合、HTTP 経由で送信する場合、ソケットからの読み取りをいつ停止できるかをサーバー (またはクライアント) に通知する content-length ヘッダーを送信しますか? そのため、http を使用せず、生のソケットを使用している場合は、メッセージの末尾を特定する別の区切り文字またはメカニズムが必要になります。
この特定のアプリは、クライアントとサーバーが同じホスト上にある状況でのみテストされているのではないかと思っています-偶然にも、最初の読み取りは今まで常に返されたため、プログラマーはそれが機能すると考えているのではないかと思っていますすべてのデータ。