0

ソケットを使用して、読み取りメソッドと書き込みメソッドに異なるスレッドを作成したいと思います。両方のスレッドで共有するために、異なるソケットまたは同じソケットを使用する必要があるのでしょうか?

4

3 に答える 3

0

同じソケットを使用して、読み取りと書き込みの両方を行うことができます。もちろん、2つのエンドポイントの1つがサーバーソケットを開く必要があります。次に、1つのスレッドをブロックして入力データを待機し、別のスレッドが必要に応じてデータを出力できるようにすることができます。

于 2012-08-15T16:39:49.720 に答える
0

1. 1つのソケット オブジェクトを作成します。

2.このオブジェクトにアクセスするには、任意の数のスレッドを使用しますが、書き込み操作と読み取り操作には十分注意してください Thread-Safe

3. AsynchronousServerChannelであるand ServerSocketChannelfromjava.util.nioパッケージを使用してみてください。

于 2012-08-15T17:02:19.607 に答える
0

同じデバイス/オブジェクトとの間で読み書きを行っている場合は、同じスレッドを使用します。この方法では、まだ書き込みを行っていないときに何かを読み取ろうとする必要がありません。複数のスレッドを実行すると、null など、注意しないと多数のエラーが発生する可能性があります。

于 2012-08-15T16:18:09.710 に答える