你读文件当然可以了,因为文件的长度是可以预知道的。所以你的哪个while可以退出的,但是你看看这里呢?这里是网络呀,你对你的输入流的长度可以预知吗?不但如此,socket还存在阻塞和非阻塞的问题,这个也要考虑的。
我只是给你一个思路,自己好好看一下你的程式。

解决方案 »

  1.   

    东西都读出来后就break掉while就可以了。
      

  2.   

    receiver.read()只有当文件的结尾被独到的时候才返回-1,应用到Socket时是
    只有当连接断掉的时候才返回-1,既对方socket调用close()或网络故障的时候才可以。所以你的程序总是阻塞在while 循环里。
    你可以在读的时候判断你的内容。得到合适的时候就用break或者调用close()来跳出循环
      

  3.   

    最好使用BufferedReader的ready() 来测试一下再读。这种情况比较少见,网络正常时是没问题的。
      

  4.   

    检查双方的flush()问题。构造流时,必须让它自动刷新,否则你
    得手动刷不是?