socket中输入输出流问题
在我编程中遇到了一个问题,就是客户端如果不关闭输入流的话,服务端与客户端之间的通讯就会卡住,只要一调用socket。shutdownInput关闭输入流就正常
客户端代码
public static void main(String[] args) {
try {
//1.创建socket对象,指明需要连接的服务器的地址和端口号
Socket clientSocket=new Socket("localhost", 8811);
//2.连接建立后,通过输出流向服务器端发送请求消息
OutputStream os=clientSocket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
pw.write("用户名 : admin 密码 :123");
pw.flush();
System.out.println("发送成功");
clientSocket.shutdownOutput();//只要把这行给注释了,通讯就会卡住
//3.通过输入流获取服务器的响应信息
InputStream is=clientSocket.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String serverSay=br.readLine();
System.out.println("这里是客户端 ,服务端说 : "+serverSay);
//4.关闭资源
clientSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
求大神解答一下原因