目录
- 代码
- 图示
- 原理
代码
// 初始化服务器
System.out.println("初始化服务器");
ServerSocket serverSocket = new ServerSocket(8087);
System.out.println("服务器初始化成功");
// 监听服务器
Socket accept = serverSocket.accept();
System.out.println("服务器连接成功");
String hostName = accept.getInetAddress().getHostAddress();
System.out.println("hostName = " + hostName);
// 接收消息
InputStream in = accept.getInputStream();
// 转成字符流
InputStreamReader inputStreamReader = new InputStreamReader(in,"UTF-8");
// 放到缓冲流之后就可以去一行一行读数据了
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = bufferedReader.readLine();
System.out.println("客户端说 = " + line); // line = GET /?name=hello HTTP/1.1
// http://192.168.1.115:8088/?name=hello
图示
原理
字节流转为字符流后可以读取中文,但是一个字符一个字符读取的速度太慢,转为缓冲流后就可以一行一行读取数据,效率大大提高,也大量减少了IO次数。