亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于shutdown的問題

為什么要調用shutdowninput和shutdownoutput方法,不調用的話會沒有數據,為什么啊?快瘋了,求大神給個詳細的解答?還有服務器接收到數據并寫出數據,客戶端發送數據并接收數據,不行嗎?

正在回答

3 回答

首先你要了解這兩個方法是做什么用的。

調用Socket.shutdownInput( )后, 禁用此套接字的輸入流,發送到套接字的輸入流端的任何數據都將被確認然后被靜默丟棄。任何想從該套接字的輸入流讀取數據的操作都將返回-1;

?? 調用Socket.shutdownOutput()后,禁用此套接字的輸出流,對于 TCP 套接字,任何以前寫入的數據都將被發送,并且后跟 TCP 的正常連接終止序列(即-1),之后,從另一端TCP套接字的輸入流中讀取數據時,如果到達輸入流末尾而不再有數據可用,則返回 -1。

就是說你沒有調用shutdownOutput時,相當于沒有跟服務器說“我已經說完啦,你可以說了”。那么服務器呢就覺得“哦,客戶端還沒說完,我要等它說完,要有禮貌”然后服務器就一直等,就阻塞了。他就不會給客戶端發送消息“welcome”。


1 回復 有任何疑惑可以回復我~

我感覺你說的不是太對。。。能不能詳細一點,估計我理解的有偏差。

0 回復 有任何疑惑可以回復我~

通道關閉, 數據存在于通道中,未進行輸出

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java Socket應用---通信是這樣練成的
  • 參與學習       125005    人
  • 解答問題       627    個

分享的是 Java 中的網絡編程,使用Socket實現網絡聊天通信

進入課程

關于shutdown的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號