對於客戶端往Socket的輸出流裏面寫數據傳遞給服務端要注意一點,若是寫操做以後程序不是對應着輸出流的關閉,而是進行其餘阻塞式的操做(好比從輸入流裏面讀數據),記住要flush一下,只有這樣服務端才能收到客戶端發送的數據,不然可能會引發兩邊無限的互相等待。在稍後講到客戶端和服務端同時讀和寫的時候會說到這個問題。spa
BufferedReader的readLine方法是一次讀一行的,這個方法是阻塞的,直到它讀到了一行數據爲止程序纔會繼續往下執行,那麼readLine何時纔會讀到一行呢?直到程序遇到了換行符或者是對應流的結束符readLine方法纔會認爲讀到了一行,纔會結束其阻塞,讓程序繼續往下執行。因此咱們在使用BufferedReader的readLine讀取數據的時候必定要記得在對應的輸出流裏面必定要寫入換行符(流結束以後會自動標記爲結束,readLine能夠識別),寫入換行符以後必定記得若是輸出流不是立刻關閉的狀況下記得flush一下,這樣數據纔會真正的從緩衝區裏面寫入。get