GCDAsyncSocketとAsyncSocketの両方のタイトルは非同期であり、どちらも類似しています。しかし、ソケットに関するすべてのことは、TCPデータパケットからの無限の長さの単一の連続したストリームを扱うことです。最初は、私はちょっと混乱していました。AsyncSocketは、カスタムリクエストとレスポンスパケットを作成し、非同期的にそれらを処理することによっていくつかの魔法を実行すると考えました(例えば、リクエストA、B、Cを作成すると、異なる順序、例えば、B、C、A)。ソケットの世界を少し掘り下げた後、私はサーバーから(ソケット読み込みを介して)データが非同期ではなく、同期していることを理解しました。 1つのストリームを読み込みパケットに分割し、デリゲートクラスのコールバックを作成することです。リクエストをA、B、Cにすると、サーバからの応答はA、B、Cの順番になります。 AFAIK、AsyncSocketはメイン実行ループを使用するので、メインスレッド、メインキューを再び使用します。だから、非同期ということはどういう意味ですか?AsyncSocket/GCDAsyncSocketisのどの部分が非同期であるのですか?
0
A
答えて
2
読み取りと書き込みの呼び出しがスレッドをブロックせずに即座に戻り、後で委譲やブロックによって結果を処理できるという点で非同期です。
0
UIAdamが正しいです。たとえば、AsyncSocketは、他のスレッドで結果を処理することによってストリーム・コールバックを実装します。ソースコードの部分は次のとおりです。
static void MyCFReadStreamCallback (CFReadStreamRef stream, CFStreamEventType type, void *pInfo) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
AsyncSocket *theSocket = [[(AsyncSocket *)pInfo retain] autorelease];
[theSocket doCFReadStreamCallback:type forStream:stream];
[pool drain];
}
関連する問題
- 1. ASP.NETコードの同期から非同期/待機への部分的な移行
- 2. 一部のIDEで非同期でエラーが発生する
- 3. どのライフサイクルイベントが非同期になるのですか?
- 4. Artifactory - 部分リポジトリの同期
- 5. nodejs非同期の並列非同期内部
- 6. Springで非同期の残りの部分を作る方法は?
- 7. どのように同期タスクを非同期にするのですか?
- 8. ダーツの非同期は本当に非同期ですか?
- 9. ASP .NETのコアの非同期部分図
- 10. はフラッシュ非同期または同期の外部インターフェイスですか?
- 11. 外部スクリプトからのブートストラップモーダルでのフォームの非同期ロード
- 12. 非同期ですが非同期です
- 13. コアデータのManagedObjectContext.ExecuteFetchRequestを非同期で非同期にする方法
- 14. ハイチャート。データの非同期読み込み部分
- 15. Webサービスが非同期であるとはどういう意味ですか?
- 16. 現在のビューコントローラが非同期でバックグラウンドである
- 17. あるレルムから別のレルムへ非同期でコピーする
- 18. RxJavaで非同期メソッドを同期する方法は? RxJavaの非同期ウォーターフォール
- 19. MQSeries:MCBと非同期で同期ポイント/ロールバックが可能ですか?
- 20. 非同期非公開と非同期非同期の違いは何ですか?
- 21. 「非同期キーワード非同期」関数を「非同期キーワード非同期」関数に変換できますか?
- 22. nodejsで非同期に同期する
- 23. BitmapFrameを非同期で非同期メソッドで作成する
- 24. どこにあるのFIle.ReadAll *** Async/WriteAll *** Async/AppendAll ***非同期メソッドですか?
- 25. 非同期非同期のJavaScriptでの実行順序
- 26. 非同期メソッドでの非同期ライブラリメソッドの使用
- 27. 分割IProgressMonitor非同期
- 28. データベーストリガー、非同期ですか?
- 29. 内部から呼び出されるSwift関数非同期クロージャも非同期ですか?
- 30. タイマー内部の非同期タスク