0

物事はこのようなものです:

AsyncSocketを使用してサーバーに接続しました。サーバーがクライアントにバイトを送信すると、アプリは( )メソッドat a timeを呼び出します。onSocket: didReadData: withTag:ネットワークまたはその他の理由で、一部のバイトが到着し、残りのバイトが後で到着する場合があります(つまり、一部のバイトが遅延します)。(timeOut = -1)

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

質問:method()は何回onSocket: didReadData: withTag:呼び出しましたか?

1)1回だけ-バイトが完了するまで自動的に待機しますか?</ p>

2)2回以上-到着した(呼び出す)ものと到着した(呼び出す)、、、、、のように?

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

どの考えが正しいですか?plzは私にいくつかのアドバイスを与えます。どうもありがとう。

4

1 に答える 1

0

OK、たぶんこんな感じです。

TCPでデータを転送する:ラグなどの理由で一度に1000バイトを送信すると、最初に900バイトを受信する場合がありますが、TCPソケットは残りの100バイトを自動的に待機します。したがって、asyncSocketを使用してデータを転送し、タイムアウトを設定する場合、これらの秒の間、遅延データを処理する必要はありません。

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

編集

おそらく、この質問のタイトルは適切ではなく、誰もその質問を気にしません。

代わりにこのメソッドを使用しました-readDataToLength:。最初にheader.lengthのデータを読み取り、それを解析してから、body.lengthのデータを読み取ります。

于 2012-10-08T06:23:05.877 に答える