6 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
知道了,BufferedReader是根據(jù)“\n”或者“\r”來判斷一行的,而這里的服務(wù)端根本就沒有輸入這兩個(gè)符號(hào),也許close()方法會(huì)自動(dòng)給它加上吧。如果服務(wù)端手動(dòng)給它加上這兩個(gè)符號(hào)中的一個(gè),就可以讀出來了。

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
flush是輸出到緩沖區(qū),緩沖區(qū)沒滿的話不發(fā)送,close的動(dòng)作會(huì)強(qiáng)制把緩沖區(qū)里沒發(fā)送的東西發(fā)送出去

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
close連套接字都關(guān)閉了,當(dāng)然出來了,flush只是清理緩沖區(qū)。而且你這個(gè)用了緩沖流也沒建立緩沖啊

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
OutputStream 這個(gè)類的flush()方法不執(zhí)行任何代碼,需要其他的輸出流去重寫這個(gè)方法的

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
客戶端的readline是阻塞的,只有讀到尾部才會(huì)返回null,你在服務(wù)器端不調(diào)用close,socket沒有關(guān)閉,那么客戶端的readline就一直阻塞在那(也沒有讀到一行),所以沒有輸出
添加回答
舉報(bào)