- 975 名前:デフォルトの名無しさん [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){ 長文な上にわかりにくい文章かもしれませんが、 なぜこうなるのか教えてもらえないでしょうか?
|

|