【初心者】Java質問・相談スレッド112【大歓迎】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0975デフォルトの名無しさん
2008/03/01(土) 14:50:50いまいち上手くいきません。流れとしては、
�@(送り手) FileChannel(sourceChannel)でファイルを読み込む
�A(送り手) SocketChannel(destinationChannel)で相手に送る
�B(受け手) SocketChannel(sourceChannel)で受け取る
�C(受け手) FileChannel(destinationChannel)でファイルに書き込む
送り手
while(destinationChannel.isConnected()){
buffer.clear();
if(sourceChannel.read(buffer) < 0)
break;
buffer.flip();
destinationChannel.write(buffer);
}
受け手
while(sourceChannel.isConnected()){
buffer.clear();
if(sourceChannel.read(buffer) < 0)
break;
buffer.flip();
destinationChannel.write(buffer);
}
bufferはByteBuffer型になっています。
これを実行すると、送り手はエラーもなく正常に終了しているのですが、受け手で
「java.io.IOException: 既存の接続はリモート ホストに強制的に切断されました。」というエラーが出てきます。
エラーが出た場所 => if(sourceChannel.read(buffer) < 0){
長文な上にわかりにくい文章かもしれませんが、
なぜこうなるのか教えてもらえないでしょうか?
レス数が950を超えています。1000を超えると書き込みができなくなります。