java socket 一边关闭_java socket - 半关闭
通常,使用關(guān)閉輸出流來表示輸出已經(jīng)結(jié)束。但在進(jìn)行網(wǎng)絡(luò)通信時(shí)則不能這樣做。因?yàn)槲覀冴P(guān)閉輸出流時(shí),該輸出流對應(yīng)的Socket也將隨之關(guān)閉,這樣程序?qū)o法再從該socket中讀取數(shù)據(jù)。
為了應(yīng)付這種情況,socket提供了兩個(gè)半關(guān)閉的方法用來只關(guān)閉socket的輸入流或者輸出流,用以表示輸出數(shù)據(jù)已經(jīng)發(fā)送完成。方法詳情:
shutdownInput():關(guān)閉該socket的輸入流,程序還可以通過該socket的輸出流輸出數(shù)據(jù);
shutdownOutput():關(guān)閉該socket的輸出流,程序還可以通過該socket的輸入流讀取數(shù)據(jù)。
當(dāng)調(diào)用shutdownInput()或shutdownOutput()方法關(guān)閉輸入流或輸出流后,該socket處于半關(guān)閉狀態(tài)。此時(shí)可以使用isInputShutdown()或isOutputShutdown()來判斷該socket是否處于半讀狀態(tài)或半寫狀態(tài)。
需要注意的是,即使同一個(gè)socket先后調(diào)用shutdownInput()和shutdownInput()方法,該socket實(shí)例仍然沒有被關(guān)閉,只是該socket既不能輸出數(shù)據(jù)也不能讀取數(shù)據(jù)而已。
當(dāng)調(diào)用shutdownInput()或shutdownOutput()方法關(guān)閉了輸入流或輸出流之后,該socket無法再次打開輸出流或輸入流,因此這種做法不適合需要保持持久通信狀態(tài)的交互式應(yīng)用。
總結(jié)
以上是生活随笔為你收集整理的java socket 一边关闭_java socket - 半关闭的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ant编辑java忽略注释_java –
- 下一篇: java封装弊端_JAVA-初步认识-第