日期:2014-05-20  浏览次数:20696 次

socket接收输入流时,不能检测到流的末尾
我的程序要实现多个文件的连续传输,不知道是否因为输入流没有关闭的原因,接收端无法检测到流的末尾,所以之一阻塞,希望高手帮忙解决。

接收端:
while((len=bis.read(buf,0,1024*10))!=-1)
{
    bos.write(buf,0,len);
    bos.flush();
    System.out.println(len);
}
System.out.println( "end ");
bos.close();
fos.close();
os.write(1);

输出信息:
creating   outside\a.doc......
fileLen:   24064
10240
10240
3584

发送端:
while((len=bis.read(fileBuf,0,1024*10))!=-1)
{
    bos.write(fileBuf,0,len);
    bos.flush();
  }    
    bis.close();
    fis.close();
    System.out.println( "file   end ");
    is.read();

输出信息:
file   end

------解决方案--------------------
帮你up,不用给我分。
: )

你这个做的是文件传送吗?
------解决方案--------------------
发送端没有关闭流,接受端当然收不到结束标志。
发送端:
while((len=bis.read(fileBuf,0,1024*10))!=-1)
{
bos.write(fileBuf,0,len);
bos.flush();
}
===========================
bos.close();
===========================
bis.close();
fis.close();
System.out.println( "file end ");
is.read();