文档首页 > > 移植指南> 安装Mongoose

安装Mongoose

分享
更新时间:2020/06/24 GMT+08:00

介绍

简要介绍

Mongoose是C语言写成的网络库。它为TCP、UDP、HTTP、WebSocket、CoAP、MQTT实现了事件驱动型的非阻塞api,常在嵌入式设备中作为一种轻量级的Web服务器使用。

编写语言:C

一句话概述:轻量级的Web服务器

建议的版本

建议使用版本为“6.10”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

安装

下载和解压Mongoose软件包。

cd /usr/local/src

wget https://github.com/cesanta/mongoose/archive/6.10.tar.gz

tar -zxvf 6.10.tar.gz

运行和验证

  1. 创建Web服务器。

    Mongoose提供的是源代码,分别为“mongoose.c”“mongoose.h”, 通过测试调用它们创建Web服务器。

    cd /usr/local/src/mongoose-6.10/

    touch server.c

    vi server.c

    插入如下代码,并保存。

    #include "mongoose.h"
    static const char *s_http_port = "8001";
    static struct mg_serve_http_opts s_http_server_opts;
    static void event_handler(struct mg_connection *nc, int ev, void *p) {
      if (ev == MG_EV_HTTP_REQUEST) {
        mg_serve_http(nc, (struct http_message *) p, s_http_server_opts);
      }
    }
    
    int main(void) {
      struct mg_mgr mgr;
      struct mg_connection *nc;
      mg_mgr_init(&mgr, NULL);
      printf("Starting web server on port %s\n", s_http_port);
      nc = mg_bind(&mgr, s_http_port, event_handler);
      if (nc == NULL) {
        printf("Failed to create listener\n");
        return 1;
      }
      mg_set_protocol_http_websocket(nc);
      s_http_server_opts.document_root = ".";
      s_http_server_opts.enable_directory_listing = "yes";
      while(1) {
        mg_mgr_poll(&mgr, 1000);
      }
      mg_mgr_free(&mgr);
      return 0;
    }

  2. 编译源码。

    gcc -o server server.c mongoose.h mongoose.c

    ./server

  3. 验证。

    放通云服务器安全组中入口规则里的8001端口,在浏览器中输入“http://[ECS IP]:8001”,可以看到“server.c”所在目录的文件列表信息。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问