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