Rust语言 学习19 web编程
  dBFTbkVLMBge 2023年11月02日 37 0

一、web服务器

Rust语言 学习19  web编程_web服务器

use std::net::TcpListener;

fn main() {
    // 监听某个ip和端口
    let listener = TcpListener::bind("127.0.0.1:8888").unwrap();
    for stream in listener.incoming() {
        let strData = stream.unwrap();
        println!("Connection established");
    }
}

打开浏览器 http://127.0.0.1:8888/

Rust语言 学习19  web编程_web服务器_02

然后看下如何读取请求传过来的参数

 

use std::io::Read;
use std::net::{TcpListener, TcpStream};

fn main() {
    // 监听某个ip和端口
    let listener = TcpListener::bind("127.0.0.1:8888").unwrap();
    for stream in listener.incoming() {
        let stream = stream.unwrap();
        // 读取请求参数
        handle_readData(stream);
    }

    // 读取数据处理
    fn handle_readData(mut stream:TcpStream) {
        let mut buffer = [0;512];
        // 把流stream中的数据读取到缓存区buffer中
        stream.read(&mut buffer).unwrap();
        println!("Request param:{}",String::from_utf8_lossy(&buffer[..]));
    }
}

http://127.0.0.1:8888/  访问一下 ,控制台输出了结果

Rust语言 学习19  web编程_web服务器_03

新建html ,补充代码

<!DOCTYPE html>
<html lang = "en">

<head>
    <meta charset="utf-8">
    <title>Hello</title>
</head>

<body>
    <h1>Hello!</h1>
    <p>Hi from Rust</p>
</body>

</html>
se std::fs;
use std::io::{Read, Write};
use std::net::{TcpListener, TcpStream};

fn main() {
    // 监听某个ip和端口
    let listener = TcpListener::bind("127.0.0.1:8888").unwrap();
    for stream in listener.incoming() {
        let stream = stream.unwrap();
        // 读取请求参数
        handle_readData(stream);
    }

    // 读取数据处理
    fn handle_readData(mut stream:TcpStream) {
        let mut buffer = [0;512];
        // 把流stream中的数据读取到缓存区buffer中
        stream.read(&mut buffer).unwrap();

        // 然后输出响应response
        let contents = fs::read_to_string("hello.html").unwrap();
        let response = format!("HTTP/1.1 200 OK\r\n\r\n{}",contents);
        stream.write(response.as_bytes()).unwrap();
        stream.flush().unwrap();
    }
}

Rust语言 学习19  web编程_web服务器_04

增加针对异常的处理

Rust语言 学习19  web编程_web服务器_05

二、使用线程池来优化web服务器处理

Rust语言 学习19  web编程_web服务器_06


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  dBFTbkVLMBge   2023年11月02日   38   0   0 web服务器
dBFTbkVLMBge