2

http://code.google.com/p/iphonebits/source/browse/trunk/src/TicTacToeNew/のサンプル コードを使用して、2 つの iOS デバイス間でデータを送信しようとしています。

クライアントはうまく接続し、データは 2 つのデバイス間で問題なく転送されます。クライアントは、データのパケットを約 10 回/秒送信します。ただし、データを受信する間に非常に奇妙な一時停止が発生します。

受信コードでは、リクエストを受信するたびにデバッグ ステートメントを入れています。

- (void) stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
     NSLog(@"stream: handleEvent : %d", eventCode);
         switch(eventCode) {
            // ... handle event and print out received data
         }
}

関連する送信コードは、次の sendQueuedData 関数にあります: http://code.google.com/p/iphonebits/source/browse/trunk/src/TicTacToeNew/Classes/OnlineSession.m?r=19

リクエストの最初の 1 秒程度は計画どおりに進みます (ただし、リクエストはまとめてバッチ処理されているようです)。

2011-03-13 12:28:08.759 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":1.98,"y":0.01}
[DEBUG] Fire Event: data: {"x":1.98,"y":0.00}
[DEBUG] Fire Event: data: {"x":2.11,"y":0.01}
2011-03-13 12:28:08.781 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":2.07,"y":0.03}
[DEBUG] Fire Event: data: {"x":2.02,"y":0.03}
2011-03-13 12:28:08.923 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":1.98,"y":0.01}
[DEBUG] Fire Event: data: {"x":1.86,"y":0.01}
2011-03-13 12:28:08.996 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":1.73,"y":0.01}
2011-03-13 12:28:09.171 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":2.38,"y":-0.56}
2011-03-13 12:28:09.182 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:09.332 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:09.496 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:09.501 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:09.598 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}

...しかし、その後の呼び出しのタイムスタンプに注意してください:

2011-03-13 12:28:10.163 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:13.770 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}    
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:13.772 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:13.777 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:13.868 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:14.016 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:14.177 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:14.340 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:14.424 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:15.065 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:16.338 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:18.740 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
2011-03-13 12:28:18.741 bluetoothmodule[52188:207] stream: handleEvent : 2
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}
[DEBUG] Fire Event: data: {"x":0.00,"y":-0.00}

ご覧のとおり、handleEvent() コールバックは散発的に呼び出されており、明らかにリアルタイム アプリケーションには適していません。誰かが理由を知っていますか?NSStreams の使用からhttp://code.google.com/p/cocoaasyncsocket/のようなUDP に切り替える必要がありますか?

4

0 に答える 0