客户端代码大概如下
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));//
while (!s.isClosed()&& ((line = socketReader.readLine()) != null)) {
...
}//
服务器第一次给客户端发回 信息是   aaaaaaaabbbbbb
 客户端第一次读取的是 aaaaaaaabbbbbb
服务器第二次给客户端发回 信息是   aaaaaaaabbbbbb
 客户端第二次读取的是 bbbbb
什么原因呢?
我认为是读入流没有及时清空流内信息 ,所以读的时候 读取的是上次读入时候的残留信息,
请高手指点

解决方案 »

  1.   

    你需要加上socketReader.flush();
    while (!s.isClosed()&& ((line = socketReader.readLine()) != null)) { 
    ...
     socketReader.flush();
    }// 
      

  2.   

    "我认为是读入流没有及时清空流内信息 ,所以读的时候 读取的是上次读入时候的残留信息",想法错的!
    那个socketWriter.println("aaaaaaaabbbbbb");
       socketWriter.flush();
    试试!
      

  3.   

    恩  今天早上的第二个这样的问题了   读完要flush的...
      

  4.   

    我以前也做过这样的
     没有FLUSH  为什么也可以
      

  5.   

    Server://auto flush the output buffer
    PrintWriter out = new PrintWriter(serverSocket.getOutputStream(),true);
    out.println("whatever");
      

  6.   

    为什么bufferedReader没有flush()函数呢,难道不需要这项功能吗?
      

  7.   

    reader为什么要有flush,writer才有flush
      

  8.   

    这个和客户端没关系, 应该是服务器端没有flush