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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我跟老師一樣的代碼?為什么會出現這樣的異常?

我跟老師一樣的代碼?為什么會出現這樣的異常?

黃鋒黃鋒 2017-02-22 17:08:33
package?huangfeng.TongXin; import?java.io.BufferedReader; import?java.io.IOException; import?java.io.InputStream; import?java.io.InputStreamReader; import?java.net.ServerSocket; import?java.net.Socket; /* ?*?基于TCP協議的Socket通信,實現用戶登錄 ?*?服務器端 ?*/ public?class?Server?{ public?static?void?main(String[]?args)?{ try?{ //創建一個Socket服務器端,即ServerSocket,指定綁定端口,并監聽此端口 //創建ServerSocket的實例 ServerSocket?serverSocket?=?new?ServerSocket(9999); System.out.println("******服務器即將啟動,等待客戶端的連接******"); //調用accept()方法開始監聽,等待服務器的連接 Socket?socket?=?serverSocket.accept(); //獲取輸入流,并讀取客戶端信息 InputStream?is?=?socket.getInputStream();//字節輸入流 //把字節輸入流包裝為字符輸入流 InputStreamReader?isr?=?new?InputStreamReader(is); //加載緩沖 BufferedReader?br?=?new?BufferedReader(isr); String?info?=?null; //獲取客戶端信息 while((info?=?br.readLine())!=null){ System.out.println("我是服務器,客戶端說:"+info); //關閉輸入流 socket.shutdownInput(); //關閉相關資源 br.close(); isr.close(); is.close(); socket.close(); serverSocket.close(); } }?catch?(IOException?e)?{ e.printStackTrace(); } } }package?huangfeng.TongXin; import?java.io.IOException; import?java.io.OutputStream; import?java.io.PrintWriter; import?java.net.Socket; import?java.net.UnknownHostException; /* ?*?客戶端 ?*/ public?class?Client?{ public?static?void?main(String[]?args)?{ try?{ //創建客戶端socket。指定服務器的地址和端口 Socket?socket?=?new?Socket("localhost",?9999); //獲取輸出流,向服務器端發送信息 OutputStream?os?=?socket.getOutputStream();//字節輸出流 //將輸出流包裝為打印流 PrintWriter?pw?=?new?PrintWriter(os); pw.write("用戶名:huangfeng?;?密碼:8888"); pw.flush(); socket.shutdownOutput();//關閉輸出流 //關閉相關資源 pw.close(); os.close(); socket.close(); }?catch?(UnknownHostException?e)?{ e.printStackTrace(); }?catch?(IOException?e)?{ e.printStackTrace(); } } }******服務器即將啟動,等待客戶端的連接******我是服務器,客戶端說:用戶名:huangfeng ; 密碼:8888java.io.IOException: Stream closed at java.io.BufferedReader.ensureOpen(BufferedReader.java:115) at java.io.BufferedReader.readLine(BufferedReader.java:310) at java.io.BufferedReader.readLine(BufferedReader.java:382) at huangfeng.TongXin.Server.main(Server.java:31)
查看完整描述

3 回答

?
ziom

TA貢獻948條經驗 獲得超1109個贊

在讀取BufferedReader的時候不能把它關了

//獲取客戶端信息????????????
while((info?=?br.readLine())!=null){
????System.out.println("我是服務器,客戶端說:"+info);
????//關閉輸入流
????socket.shutdownInput();
????//關閉相關資源
????//?br.close();?把這行注釋了再試試
????isr.close();
????is.close();
????socket.close();
????serverSocket.close();
}


查看完整回答
1 反對 回復 2017-02-22
?
lindajia

TA貢獻3條經驗 獲得超1個贊

?//獲取客戶端信息

????????????while((info?=?br.readLine())!=null){

????????????????System.out.println("我是服務器,客戶端說:"+info);

? ? ? ? ? ? ? ?}//大括號在這里 表示循環讀出數據完了后,再進行后面的關閉輸入流資源操作

????????????????//關閉輸入流

????????????????socket.shutdownInput();

????????????????//關閉相關資源

????????????????br.close();

????????????????isr.close();

????????????????is.close();

????????????????socket.close();

????????????????serverSocket.close();

????????????}

?????????????


查看完整回答
反對 回復 2017-02-22
  • 3 回答
  • 1 關注
  • 2015 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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