1 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
BufferedReader
你得到一個(gè)例外,因?yàn)槟阍噲D從一個(gè)不再存在的地方讀取,in1
特別是。在第一次運(yùn)行時(shí),所有的流和閱讀器都按它們應(yīng)該打開的方式打開,但是在從客戶端收到命令后close
,您的服務(wù)器關(guān)閉了in1
. 然后,當(dāng)客戶端嘗試重新連接時(shí),程序會(huì)嘗試將 的值賦給in1.readLine()
which serverMsg
is a String
,但由于in1
is 已不復(fù)存在,因此IOException
會(huì)發(fā)生這種情況,因?yàn)?code>BufferedReader已關(guān)閉并且無(wú)法從中讀取任何內(nèi)容。
我想既然你想讓服務(wù)器保持運(yùn)行,而客戶端可以在任何給定時(shí)間連接和斷開連接,這完全有道理,也許你不應(yīng)該關(guān)閉在你的情況下向服務(wù)器提供鍵盤命令的命令BufferedReader
。關(guān)閉它對(duì)我來(lái)說(shuō)沒有意義,因?yàn)楫?dāng)客戶端斷開連接時(shí)你并沒有停止整個(gè)服務(wù)器,你只是關(guān)閉連接,但服務(wù)器仍然應(yīng)該能夠接受命令。
希望這可以幫助。
添加回答
舉報(bào)