ubuntu 下 mongoose

mongoose是一款非常容易使用的web服务器,实现了对socket的封装,它提供给我们的接口非常简洁,并且能提供很好的性能。

几个重要的结构:

struct mg_context

服务器上下文,保存着服务器的配置信息。每个mg_context都代表一个服务器。

struct mg_connection

表示HTTP的连接

struct mg_request_info

HTTP请求信息。这个结构中保存着用户请求的所有的信息,例如http版本信息等。

重要的函数:

void mg_set_uri_callback(struct mg_context *context, const char *uri_regex, mg_callback_t func, void *user_data)

函数中的第一个参数是服务器上下文。

第二第三的参数分别是URI地址和函数指针,mg_set_uri_callback这个函数的功能就是在把这两个参数间联系起来,在用户申请这个URI时,服务器就会这个函数指针指向的函数。func的原型是:

void mg_set_log_callback(struct mg_context *ctx, mg_callback_t func)

第四个参数是func的一个参数。

mongoose使用实例

使用mongoose创建一个web服务大致可以分为两个部分:1.启动并配置服务器;2.处理请求,在配置服务器是,我们需要指定相应的URI handler,URI handler是一个函数,这个函数在用户请求URI时被调用。

一个简单的例子:

web.c

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "mongoose.h"
static void
show_index(
        struct mg_connection            *conn,
        const struct mg_request_info    *request_info,
        void                            *user_data)
{
        mg_printf(conn, "%s",
                "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n");
        mg_printf(conn,"%s","<html><h3>test</h3></html><br>");
}
int main(int argc,char *argv[])
{
        struct mg_context *ctx;
        ctx = mg_start();                                 //第1步
        if (mg_get_option(ctx,"ports")==NULL &&
                mg_set_option(ctx,"ports","8080")!=1) {   //第2步
                exit(1);
        }
        mg_set_uri_callback(ctx,"/",&show_index,NULL);   //第3步
        getchar();
        mg_stop(ctx);
        return (0);
}

第一步:创建一个服务器。

第二部:配置服务器。这个例子中配置了服务器的端口号。

第三步:配置URI对应的函数,这里的URI是”/”,当用户请求的URI是/时,服务器调回调用show_index函数处理这个请求。show_index需要用户自行定义,我们写了一个最简单的版本,它在浏览器上显示test这个字符串。

运行:[email protected]:/usr/lib/cgi-bin$ sudo gcc web.c mongoose.c -ldl -lpthread -o web.c

[email protected]:/usr/lib/cgi-bin$ ./web.c

运行截图:

ubuntu 下 mongoose,布布扣,bubuko.com

时间: 2024-10-29 05:19:39

ubuntu 下 mongoose的相关文章

ubuntu下卸载python2和升级python3.5

卸载python只需一条语句就可以实现 sudu apt-get remove python ubuntu下安装python3 sudo apt-get install python3 但这样只安装了python3.4 要想使用python3.5,则必须升级python3.4 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 使用以上三行命令便可升级py

win7下的mstsc ubuntu下的rdesktop

远程图形化登录, win7下: 开始->mstsc->10.108.103.93即可进行后续输入账号密码验证登录. 功能类似rdesktop. 如图: win7下的mstsc ubuntu下的rdesktop,码迷,mamicode.com

Redis(三)-Ubuntu下安装

Ubuntu 下安装 在 Ubuntu 系统安装 Redi 可以使用以下命令: $sudo apt-get update $sudo apt-get install redis-server 启动 Redis $ redis-server 查看 redis 是否启动? $ redis-cli 以上命令将打开以下终端: redis 127.0.0.1:6379> 127.0.0.1 是本机 IP ,6379 是 redis 服务端口.现在我们输入 PING 命令. redis 127.0.0.1:

Ubuntu下apt-get命令详解

在Ubuntu下,apt-get近乎是最常用的shell命令之一了,因为他是Ubuntu通过新立得安装软件的常用工具命令. 本文列举了常用的APT命令参数: apt-cache search package 搜索软件包 apt-cache show package  获取包的相关信息,如说明.大小.版本等 sudo apt-get install package 安装包 sudo apt-get install package --reinstall   重新安装包 sudo apt-get -

ubuntu下可用的串口调试工具--cutecom

今天在ubuntu下要用到串口发送16进制数据,百度了很多工具,觉得minicom和cutecom都不错,比较直观是cutecom,所以就介绍下cutecom. 安装: 输入 $ sudo apt-get install cutecom    便可安装 $ cutecom                                    便可执行 这是软件截图: Device:这里是串口名称,但有时识别的串口不能在这里选择,比如ttyUSB0,需要手动修改为 /dev/ttyUSB0 Bau

Ubuntu下配置tftp服务和NFS服务

Ubuntu下配置tftp服务和NFS服务 配置tftp 方法一:(推荐方法)Ubuntu10.04 测试通过 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立tftpboot目录,作为服务器的目录sudo mkdir ~/tftpboot释放权限:(服务器目录,需要设置权限为777,chomd 777)sudo chmod 777 ~/tftpboot 3.配置TFTP服务器

ubuntu下docker安装与版本升级

ubuntu 下docker安装与版本升级 一.系统环境 系统:ubuntu-server 14.04 x86_64 内核:3.13.0-32-generic 二.Docker安装 --------------------------------------------------------------------------------- 要想安装最新版本的Docker需要使用Docker源来安装 $ sudo su - root # apt-get -y installapt-transp

在Ubuntu下编译Assimp库

在Ubuntu下编译Assimp库 如何在Ubuntu下编译Assimp库?这是我以前编译成功后做的笔记,供参考. 1.去下面的网站去下载Assimp库: http://assimp.sourceforge.net/ 2.安装cmake,似乎Assimp库只能通过cmake和vs工程文件进行构建,普通的makfile是通过它来产生的.Ubuntu下使用sudo apt-get install cmake.然后通过cmake --version查看cmake的版本,我cmake版本是2.8.11.

Ubuntu下部分软件的简介及其安装步骤

1.安装linux摄像头应用软件cheese sudo apt-get install cheese 2.Ubuntu Tweak    Ubuntu Tweak是一款专门为Ubuntu(GNOME桌面)准备的配置.调整工具.主要面向新手级的普通用户.它可以设置很多并不能在系统首选项中设置的隐藏选项,以满足用户自定义的乐趣.即使是新手,也可以方便地通过它来进行适合自己的系统调整.    安装命令:    第一步:添加tweak源 sudo add-apt-repository ppa:tuala