2009-05-18 7 views
-3

java nioを使用して小さなデータを送信できます。java nioソケットチャネルを使用して大きなデータを書き込む際の問題

しかし、私は非常に大きなデータを送信したい場合、私のソケットチャンネルは正常に動作しませんでした。

message = "very large data"+"\n"; 
ByteBuffer buf = ByteBuffer.wrap(message.getBytes()); 
int nbytes = channel.write(buf); 

すべてのデータが送信されます。

私はBufferedInputStreaReader.readLine()を使用しているので、サーバーからデータを読み込みたいと思います。 この場合、私は私が ディーパック

+1

"うまく動作しなかった"とはどういう意味ですか?あなたは例外がありますか? –

+1

あなたは正確に何が動作していないか説明しなければならないでしょう...例外、スタックトレース、何か... –

答えて

1
write() 

Returns: 
The number of bytes written, possibly zero 

書き込みがあなたの全体のBUFを書くことを保証するものではありません

感謝を送信したデータのいずれかを取得することはできませんまた、任意のエラーを取得しておりません。 書かれた金額を確認し、別の書類を作成する必要があります。 (おそらくまたあなたが再び書くことができるまで待つ(選択する))。

おそらく良いjava.nioのチュートリアルを検索する必要があります... より単純なAPIが必要な場合は、代わりにjava.ioでblocking ioを使用してください...

関連する問題