在網絡編程中用BufferReader(以下簡稱br)來接受服務器或客戶端的數據。
當使用方法爲:
while((str = br.readLine()) != null){}
時,(假設對方已經發送完所有的文本)其語句爲阻塞式語句,處於一直等待狀態,此時若在while循環中,輸入:
str.isEmpty()是不可以的,因爲while的判斷語句一直處於等待狀態,無法進入循環內部。
目前只想到一種方案是讓客戶端與服務器約定一個結束符(如end):
while((str = br.readLine()) != null && !str.equal("end")){}
這樣就可以解決阻塞的問題了。