用Rust 来搭建一个多线程网络服务器 详细教程 Building a multiple thread web server

 https://doc.rust-lang.org/1.30.0/book/second-edition/ch20-00-final-project-a-web-server.html

用Rust 来搭建一个多线程网络服务器,主要覆盖

  1. 了解点TCP和 HTTP.  
  2. 在一个socket上监听TCP connections  
  3. 解析很小一部分 HTTP requests.
  4. 创建适当的 HTTP response.
  5. 用 thread pool 来提高服务器吞吐量.

注意:本项目是示例教程。

1. Building a Single-Threaded Web Server  搭建一个单线程web server

2.Turning Our Single-Threaded Server into a Multithreaded Server 将单线程web server 改成 多线程

3. Graceful Shutdown and Cleanup 优雅地关闭和清除

 

1.搭建一个单线程web server

TCP 和 HTTP 都是 request-response 协议。即一个客户端client向服务器server发送请求request,服务器server

监听请求request,并提供响应response给客户端client。

TCP 是低层协议,描述了信息是如何从一个机器到另外一个机器的但并不指定内容;HTTP是高层协议,在TCP之上,定义了

请求和响应的内容。技术上讲,HTTP可以和其它协议结合使用。但是大部分情况,HTTP和TCP一起使用。

1.1 首先建立一个新的项目,然后来修改代码。

zzl@zzl-virtualbox2:~/rustprj$ cargo new hello --bin
     Created binary (application) `hello` package
zzl@zzl-virtualbox2:~/rustprj$ 
 

修改src/main.rs 文件如下:

use std::net::TcpListener;

fn main() {

    let listener = TcpListener::bind("127.0.0.1:7878").unwrap();

    for stream in listener.incoming() {

       let stream = stream.unwrap();

       println!("Connection establis

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值