客户端为什么关闭输入流会报错
老师在上面关闭了socket的输出流,接下来的接收服务器响应的代码我发现没有关闭socket的输入流,于是我加了socket.shuntdownInput程序就会报错
package com.imooc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket sk=new Socket("localhost",8888); OutputStream os=sk.getOutputStream(); PrintWriter pw=new PrintWriter(os); pw.println("用户名:admin,密码:123456"); pw.flush();//刷新缓存 sk.shutdownOutput(); //创建输入流,接收服务端响应 InputStream is=sk.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String info=null; while((info=br.readLine())!=null){ System.out.println("我是客户端,服务器说:"+info); } br.close(); is.close(); sk.shutdownInput();//关闭socket的输入流 pw.close(); os.close(); sk.close(); } catch (UnknownHostException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }