对于客户端往Socket的输出流里面写数据传递给服务端要注意一点,若是写操做以后程序不是对应着输出流的关闭,而是进行其余阻塞式的操做(好比从输入流里面读数据),记住要flush一下,只有这样服务端才能收到客户端发送的数据,不然可能会引发两边无限的互相等待。在稍后讲到客户端和服务端同时读和写的时候会说到这个问题。spa
BufferedReader的readLine方法是一次读一行的,这个方法是阻塞的,直到它读到了一行数据为止程序才会继续往下执行,那么readLine何时才会读到一行呢?直到程序遇到了换行符或者是对应流的结束符readLine方法才会认为读到了一行,才会结束其阻塞,让程序继续往下执行。因此咱们在使用BufferedReader的readLine读取数据的时候必定要记得在对应的输出流里面必定要写入换行符(流结束以后会自动标记为结束,readLine能够识别),写入换行符以后必定记得若是输出流不是立刻关闭的状况下记得flush一下,这样数据才会真正的从缓冲区里面写入。get