最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

為什么第二次服務(wù)端不用shutOutputStream,客戶端不用shutInputStream?

服務(wù)器接收客戶端信息的時(shí)候,老師讀取完,就shutInputStream(),但是第二次服務(wù)器向客戶端發(fā)送信息時(shí)卻不用shutOutputStream(),客戶端也是,我自己加下去試了下,卻報(bào)錯為什么?求大神解答下,感激不盡

正在回答

4 回答

這么說吧,客戶端發(fā)送信息給服務(wù)端,服務(wù)端接受,客戶端,服務(wù)器端老師完全可以不關(guān)閉輸入輸出流,直接關(guān)閉socke和相關(guān)資源,信息依然可以正常傳r送。這是因?yàn)殛P(guān)閉了客戶端和服務(wù)器端socket,程序在終結(jié)socket之前,會將相應(yīng)的信息發(fā)送完成,信息處理完成,然后關(guān)閉。如果,你加上服務(wù)器給客戶端發(fā)送信息,然后客戶端接收,你就必須知道??蛻舳酥笆怯梢粋€輸出流在發(fā)送數(shù)據(jù),如果它不關(guān)閉,就意味著數(shù)據(jù)仍然沒有發(fā)送完,這時(shí)候,服務(wù)器端接收到的輸入流就沒有結(jié)束信號,程序就會一直卡在那里。只有關(guān)閉了,才能給服務(wù)器端一個信號,告訴他我把信息發(fā)完了。至于老師為什么第二次服務(wù)器發(fā)送客戶端信息的時(shí)候沒加shutdown,實(shí)際上是可以加上的,沒任何問題,我不知道你的為啥出問題了,當(dāng)然最后不加也是可以的,因?yàn)樽罱K他的關(guān)閉socket也會讓客戶端接收到終止信號。

這是關(guān)閉輸出流的源碼,其實(shí)他就干了兩件事;shutout=true,getImpl().shutdownput();

http://img1.sycdn.imooc.com//573e7e1d0001144e04510220.jpg

0 回復(fù) 有任何疑惑可以回復(fù)我~

我說一下個人理解,如果有錯還望指出

close關(guān)閉的是整個socket,shutdown關(guān)閉的輸入或者輸出流

當(dāng)需要切換的時(shí)候,我可以shutdown掉一個流,這時(shí)候整個socket并不會關(guān)閉

所以,最后只要close了,關(guān)不關(guān)閉并不影響;因?yàn)樾枰袚Q輸入輸出,所以才shutdown了

像一開始沒有服務(wù)器端再回復(fù)客戶端的時(shí)候,我們不去shutdown直接close也是可以的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

lucitas 提問者

額,那為什么我在第二次在close錢加入shutdown,關(guān)閉了最后一個流,但是程序會出現(xiàn)異常,直接close才正確運(yùn)行,照你的說法來,結(jié)果應(yīng)該是二者等價(jià),close前 shutdown并不會對結(jié)果有影響才對啊. 我自己測驗(yàn),當(dāng)socket中只有一個流,你close前,加不加shutdown 都可以,如果兩個流你都shutdown了,再close好像會報(bào)錯。會不會是,shutdown的功能其實(shí)主要只是用來在開啟另一個流前關(guān)閉前一個流呢。
2016-04-09 回復(fù) 有任何疑惑可以回復(fù)我~

同問!

0 回復(fù) 有任何疑惑可以回復(fù)我~

同問!

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么第二次服務(wù)端不用shutOutputStream,客戶端不用shutInputStream?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號