問題タブ [socketchannel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1334 参照

java - NIO を使用するときに SocketChannel が実際に接続されていることを確認するにはどうすればよいですか?

AndroidでNIOクライアントプログラムに取り組んでいます。基本的にはうまく機能しますが、ネットワークが利用できない場合(WIFIが無効になっているなど)、ソケットが「実際に」接続されていることを区別する方法がわかりません.SocketChannel.finishConnect () は、利用可能なネットワークがなくても常に true を返します。接続されていない SocketChannel に書き込もうとすると、Broken pipe 例外が発生します。

では、SocketChannel が実際に接続されていることを確認するにはどうすればよいのでしょうか。

0 投票する
1 に答える
604 参照

java - Java の SocketChannel.read(ByteBuffer)

Javaドキュメントでこれに対する答えが見つからないようです:

SocketChannel.read(ByteBuffer) は現在の ByteBuffer を追加または上書きしますか?

0 投票する
3 に答える
631 参照

java - バイト数が定義されていない SocketChannel で TCP 経由でストリームを読み取る

バイト数を定義せずに SocketChannel でストリームを読み取ろうとしています。

私が考えた別の解決策は、事前定義されたサイズの異なる ByteBuffers をリストに格納することです。これにより、後で受信したサイズの新しい ByteBuffer を割り当てて、結果を中に入れることができます。

問題は、私がブロッキングモードにあり、読み取りメソッドで作成したループを終了する有効な条件が見つからないことです。コードを確認してください:

これを解決する方法について何か考えはありますか?

0 投票する
0 に答える
601 参照

java - try 外部の try-with リソースのリソースを使用する

SocketChannelサーバーとクライアントの間でメッセージを送信するために使用しています。クライアントがサーバーに接続すると、サーバーはtry-with-resources try でInputStreamsandを開き、次のようにクライアントからメッセージを受信し、クライアントにメッセージ送信します。OutputStream

outトライ外にアクセスしたい。try には、メッセージが に到着したかどうかを繰り返しチェックする while ループが含まれておりin、正常に動作します。

次のようにして、グローバル変数を設定しようとしましたglobal_out

そして、次のように、この OutputStream に書き込もうとしました。

sendMessage(Object)私はwhen should_ceckisのみを呼び出し、 istrueかどうかをテストしますglobal_outnull、そうではありません。ただし、sendMessage(Object)一向に戻りません。そうglobal_out でない 場合は、何かに設定されているに違いないのに、 が終了nullする前にリソースを使用できないのはなぜですか?try-with-resources

これを回避する方法はありますか?

0 投票する
2 に答える
13679 参照

java - HttpPost: InputDispatcher: "チャネルは修復不可能なほど壊れており、破棄されます!" Nexus 7 で

私の古いデバイスである LG Optimus 3d (Android 2.2) ではなく、Nexus 7 (4.3) で HttpPost を実行すると、次のようになります。

E/InputDispatcher﹕ チャネル '4273f7b0 ... MainActivity (server)' ~ チャネルは回復不能なほど壊れており、破棄されます!

人々はメモリリークの可能性について言及しています。見る **。ただし、この問題は、HttpPost を試すと、起動時にすぐに発生します。それでもメモリリークの可能性はありますか?

これが私がHttpPostをやっている方法です:

ここに私の HttpPostAsync タスクがあります:

何か案は?

SO answer* を読んだので、ArrayList の初期化に関係している可能性があるため、ArrayList で 1 を使用してこのように初期化しようとしましたが、問題は解決しません。

*: 完全に関連/助けにならなかった SO の回答: アプリは Android の動作を停止しました

**メモリリーク関連?http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html