1 回答

TA貢獻(xiàn)146條經(jīng)驗(yàn) 獲得超54個(gè)贊
這個(gè)問(wèn)題問(wèn)的好,其實(shí)這是因?yàn)樵赟erver阻塞了。
首先你要了解這兩個(gè)方法是做什么用的。
調(diào)用Socket.shutdownInput( )后, 禁用此套接字的輸入流,發(fā)送到套接字的輸入流端的任何數(shù)據(jù)都將被確認(rèn)然后被靜默丟棄。任何想從該套接字的輸入流讀取數(shù)據(jù)的操作都將返回-1;
?? 調(diào)用Socket.shutdownOutput()后,禁用此套接字的輸出流,對(duì)于 TCP 套接字,任何以前寫(xiě)入的數(shù)據(jù)都將被發(fā)送,并且后跟 TCP 的正常連接終止序列(即-1),之后,從另一端TCP套接字的輸入流中讀取數(shù)據(jù)時(shí),如果到達(dá)輸入流末尾而不再有數(shù)據(jù)可用,則返回 -1。
就是說(shuō)你沒(méi)有調(diào)用shutdownOutput時(shí),相當(dāng)于沒(méi)有跟服務(wù)器說(shuō)“我已經(jīng)說(shuō)完啦,你可以說(shuō)了”。那么服務(wù)器呢就覺(jué)得“哦,客戶(hù)端還沒(méi)說(shuō)完,我要等它說(shuō)完,要有禮貌”然后服務(wù)器就一直等,就阻塞了。他就不會(huì)給客戶(hù)端發(fā)送消息“welcome”。
添加回答
舉報(bào)