解决方案 »

  1.   

    发送完应该flush()下吧,目测你的服务器端应该是收不到文件的。
      

  2.   

    我的意思是把数据写入socket后应该调用flush()方法来发送吧?
      

  3.   

    恩,原来是有flush()的
    加不加没什么关系,都是只能接受到的一个对象
      

  4.   

    我用小文件做了个测试,同时在Object obj = is.readObject();这句前加了
    System.out.println(is.available());
    if(is.available()<=0) continue;
    发现就第一次is里是有数据可以读取的,后面就都是0,怀疑是你发送数据时有问题
      

  5.   

    难道是线程被占用了 ,之前的线程 就是客户端的额请求 一只占用你的socket 是的socket无法接受其他请求 了 参考http://blog.csdn.net/kongxx/article/details/7259465
      

  6.   

    ObjectOutputStream 和socket..getOutputStream()结合使用时不能连续
    ObjectOutputStream .writeObject(message);的一次只能传递一个对象然后关闭流。
    由于ObjectOutputStream 每一次启动写操作时都会写入一个标记头,造成读入时只能读取第一个写入的记录。