rust进服务器未响应,rust实现简单Http服务

其实就是照搬官网的例子,在此总结一下

use std::io::prelude::*;

use std::net::TcpListener;

use std::net::TcpStream;

use std::fs::File;

use std::thread;

fn main() {

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

for stream in listener.incoming() {

let stream = stream.unwrap();

thread::spawn(||{

handle_connection(stream);

});

}

}

fn handle_connection(mut stream: TcpStream) {

let mut buffer = [0; 512];

stream.read(&mut buffer).unwrap();

let get = b"GET / HTTP/1.1\r\n";

//逻辑处理

let (status_line, filename) = if buffer.starts_with(get) {

("HTTP/1.1 200 OK\r\n\r\n", "index.html")

} else {

("HTTP/1.1 404 NOT FOUND\r\n\r\n", "404.html")

};

//创建body

let mut file = File::open(filename).unwrap();

let mut contents = String::new();

file.read_to_string(&mut contents).unwrap();

let response = format!("{}{}", status_line, contents);

//流写入body

stream.write(response.as_bytes()).unwrap();

stream.flush().unwrap();

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值