1

私はこの問題に巻き込まれました。

簡単に言えば、

私はいくつかのデバイスを持っています。それぞれがサーバーに写真を送信します。pic のサイズのため、データはいくつかの部分に分かれます。したがって、didReadData: メソッドが呼び出されるたびに、受信データを追加する必要があります。

ここで問題が発生します:(

2 つ以上のデバイスが同時にサーバーに pic を送信すると、データが競合しますか?

つまり:

DEVICE1 は data11 data12 data13 を送信します

DEVICE2 は data21 data22 data23 を送信します

得られたデータが次の順序である可能性はありますか: data11 data21 data12 ....(2 つのデータのバッグが混同された)?

4

1 に答える 1

1

わかった。TCP プロトコルがどのように機能するかについて明確に理解していなかったと思います。

GCDAsyncsocket は非常に強力なライブラリです。優れたマルチスレッド作業を実行します。そして、この問題について私が混乱したのは、TCP を深く理解していなかったからです。

これら 2 つのデバイスの場合、GCDAsyncsocket は readData: を 2 つの異なるスレッドで呼び出します。競合は発生しません。タグを使用してデータの一部を処理するだけです。

于 2013-06-07T09:46:49.940 に答える