本文作者:乐字节-坑王老薛
这个问题,对于我们学习技术的开发者来说,有很多技术,就目前来说可能觉得都很复杂且功能强大,但是其实所有的这些技术都是由前人从最基础的功能慢慢努力日积月累才成就的,我们是站在了很多巨人的肩膀上前行,今天我们就来看看服务器是怎么慢慢的发展过来的吧。
通信的方式
- 简单通信
- 不同请求
- 复杂请求
案例实操
简单通信
回顾 Socket 编程给我们最大的感受,是可以在多台电脑之间进行数据的传输,这就是网络编程的开端和基础,通过了解客户端和服务端之间的通信来更直观地了解 Web 的发展历程。
Client
/**
* 客户端:向服务器发送请求,并发送简单的消息
* @author 坑王老薛
*
*/
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
// 创建客户端 必须指定服务器+端口
Socket client = new Socket("localhost", 8888);
// 发送消息 请求资源
// 获取输出流
OutputStream os = client.getOutputStream();
// 使用缓冲字符输出流
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(os));
// 写出消息,发送内容
String msg = "Hello, I am Client, I need some resources";
br.write(msg);
br.close();
}
}
Server
/**
* 服务端,接收客户端请求并给出简单的响应
* @author 坑王老薛
*
*/
public class Server {
public static void main(String[] args) throws IOException{
// 创建服务器,指定端口ServerSocket(int port)
ServerSocket socket = new ServerSocket(8888);
// 接收客户端连接
Socket client = socket.accept();
System.out.println("******************");
// 获取数据的输入流
InputStream is = client.getInputStream();
// 使用缓冲字符输入流
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String msg = "";
while ((msg = br.readLine()) != null) {
System.out.println(msg);
}
br.