当前位置: 首页 > news >正文

企业多语言网站开源百度指数api

企业多语言网站开源,百度指数api,好域名推荐,长沙必去十大网红地方知识点 tcp 服务多线程处理 实现功能 启动web服务#xff0c;访问链接获取页面内容。 单线程web服务 TcpListener 使用 TcpListener 开启服务端口 let listener TcpListener::bind(127.0.0.1:7878).unwrap();处理客户端连接#xff1a; for stream in lis…知识点 tcp 服务多线程处理 实现功能 启动web服务访问链接获取页面内容。 单线程web服务 TcpListener 使用 TcpListener 开启服务端口 let listener TcpListener::bind(127.0.0.1:7878).unwrap();处理客户端连接 for stream in listener.incoming() {println!(Connection established!);}当浏览器访问 http://127.0.0.1:7878/ 就打印 “Connection established!”, 表示服务启动成功。 处理接口请求 设计2个接口 访问 http://127.0.0.1:7878 时显示index.html 的内容访问 http://127.0.0.1:7878/sleep 时做一个延迟模拟单线程服务的问题 准备html文件 index.html !DOCTYPE html html langenheadmeta charsetutf-8titleHello!/title/headbodyh1Hello!/h1pHi from Rust/p/body /html404.html !DOCTYPE html html langenheadmeta charsetutf-8title你好!/title/headbodyh1很抱歉!/h1p由于运维删库跑路我们的数据全部丢失总监也已经准备跑路88/p/body /html实现 实现请求路由判断读取 html 文件内容并且返回 请求路由判断 通过 BufReader 获取请求数据 // 解析buffer. 获取请求的数据let buf_reader BufReader::new(mut stream);// 读取请求行let http_request: Vec_ buf_reader.lines().map(|result| result.unwrap()).take_while(|line| !line.is_empty()).collect(); http_requset 得到数据如下 [GET / HTTP/1.1,Host: 127.0.0.1:7878,Connection: keep-alive,...]由此数据可得只需要判断数组第一个数据就知道请求到哪个路由了。 let request_line if http_request.len( ) 0 { http_request[0] } else {};let (status_line, filename) match request_line[..] {GET / HTTP/1.1 (HTTP/1.1 200 OK, index.html),GET /sleep HTTP/1.1 {std::thread::sleep(Duration::from_secs(5)); // 添加 5 s 延迟(HTTP/1.1 200 OK, index.html)}_ (HTTP/1.1 404 NOT FOUND, 404.html),};处理html文件 通过 文件 处理模块 fs 获取文件的内容。 let contens fs::read_to_string(filename).unwrap();设置返回数据 获取文件的内容之后把数据返回给客户端, 通过 write_all 方法。 let content_length contens.len();// 组合返回数据let response format!({}\r\nContent-Length: {}\r\n\r\n{},status_line,content_length,contens);stream.write_all(response.as_bytes()).unwrap();效果 当客户端访问 http://127.0.0.1:7878 就会看到 index.html 的内容。如果客户端先访问 http://127.0.0.1:7878/sleep 新起标签页面访问 http://127.0.0.1:7878如下图。你会发现 http://127.0.0.1:7878 的请求并没有立即显示而是等待 sleep 请求结束才会显示。相当于接口会存在排队的处理这对于web服务是个不好的体验。因此需要多线程去处理这些问题。 处理多线程请求 将每个请求都用 thread 去处理 thread::spawn(|| {handle_connection(stream);});效果如下并没有发生排队的问题。这只是简单处理实际上现在成熟的框架处理单线程的问题。 源码
http://www.hkea.cn/news/14565201/

相关文章:

  • wap网站开发作业科技有限公司一般是做什么的
  • 表情包制作网站wordpress怎么翻墙
  • 深圳网站的公司深圳定做网站
  • 婚恋网站建设成本做网站的公司怎么发展业务
  • 学校网站建设基本流程建设网站比较好公司吗
  • 网站技能培训班有哪些做美食网站的需求分析
  • 景观石网站建设方案网站建设注意哪些
  • 虚拟主机多网站网站建设宣传词
  • 如何批量做网站wordpress 内容页模板
  • 北京市公司网站制作中交路桥建设有限公司地址
  • 有没有做3d衣服模型网站景德镇建设企业网站
  • 深圳网站建设模板乐云seo网站代码审计
  • 南阳商都网站做网站简历怎么制作网站
  • 私人做网站需要多少钱为公司做网站要做什么准备
  • 龙华区住房和建设局官方网站昆明做网站建设的公司哪家好
  • 怎么用织梦源代码做网站顺企网怎么样
  • 网站建设常用的方法wordpress 企业站开发
  • 建设银行官方网站是什么官方网站建设的意义
  • 公司门户网站wordpress固定链接出错
  • 网站页尾的作用上海网页设计公司
  • 上海网站制作顾wordpress 评论审核
  • 焦作音响网站建设做家常菜哪个网站最好
  • 我想建网站做推广西安市招聘网最新招聘信息
  • 如何用云服务器做网站网站建设工作领导小组
  • 网站开发网页创建网站的费用
  • 网站开发 前端珠宝网站建设要以商为本
  • 有哪些专门做写字楼的网站在哪个彩票网站是小黄人做头像的
  • 在国外网站上买机票怎样做财务汽车网址大全123
  • 做外贸找客户最好用的网站有个网站可以接单做设计的
  • 做的最成功的网站东营网站建设报价