mongoose 大于3.2 小于6.5版本demo 8080和443端口 chrome测试ok

#include <stdio.h>
#include <string.h>
#include "mongoose.h"




int SendResponse(const char *response, void *addInfo)
{
        struct mg_connection *conn = (struct mg_connection *) addInfo;
        if (mg_printf(conn, "HTTP/1.1 200 OK\r\n"
                "Content-Type: application/json\r\n"
                "Content-Length: %d\r\n"
                "\r\n"
                "%s", strlen(response), response) > 0) {
                return 1;
        } else {
                return 0;
        }
}






int callback(struct mg_connection *conn)
{
        const struct mg_request_info *request_info = mg_get_request_info(conn);
        char *readBuffer = NULL;
        int postSize = 0;






        if (strcmp(request_info->request_method, "GET") == 0) {


                        SendResponse("hello world", conn);
                        printf("get \n");
                        return 1;


        } else if (strcmp(request_info->request_method, "POST") == 0) {
                //get size of postData
                sscanf(mg_get_header(conn, "Content-Length"), "%d", &postSize);
                printf("post %d\n", postSize);


                //Mark the request as processed by our handler.
                return 1;
        } else {
                return 0;
        }
}


int main(void) {
  struct mg_context *ctx;
  const char *options[] = {"listening_ports", "8080,443s","ssl_certificate","ssl_cert.pem",NULL};
struct mg_callbacks callbacks;
                memset(&callbacks, 0, sizeof(callbacks));
callbacks.begin_request = callback;
  ctx = mg_start(&callbacks, NULL, options);
        printf(" started on port(s) %s with web root [%s]\n",
               "a", mg_get_option(ctx, "listening_ports"));


getchar();  // Wait until user hits "enter"
printf("char \n");
mg_stop(ctx);
printf("bye\n");
  return 0;
}
07-10
<通用查询><通用排序><数据备份><数据恢复><通用数据字典>的使用说明 安装步骤: 1.解开压缩文件 2.用PB打开free.pbl中的应用free 3.在free应用的搜索路径中包含 c:freefree.pbl; c:freecond.pbl; c:freesort.pbl; c:freeackup.pbl; c:freefzsr.pbl; 4.在PB下用free.db创建一个free数据库 5.run即可运行 调用方法: 1.调用<通用查询条件>方法: 把cond.pbl中的所有对象拷贝到你的应用中 把表report_condition用数据管道拷贝到你的数据库中 调用代码: openwithparm(w_condition_free,dw_1) 注意:如果你的事务对象不是sqlca,请修改w_condition_free中的sqlca为你自己的事务对象 2.调用<通用排序>方法 把sort.pbl中的所有对象拷贝到你的应用中 调用代码: openwithparm(w_sort_free,dw_1) 3.调用<数据备份><数据恢复>方法 把backup.pbl中的所有对象拷贝到你的应用中,另外要把rar.exe拷贝到当前目录 <数据备份>调用代码:open(w_backup) <数据恢复>调用代码:open(w_restor) 功能: (1)压缩备份解压恢复,压缩率很高 (2)可选择不同的盘符,包括软盘,硬盘,MO,磁带,CD等 (3)对于软盘(A:盘)备份会自动分割1.44M (4)单机备份恢复简单方便 (5)Sybase Adaptive Server Anywhere网络数据库可在工作站或服务器上进行数据备份 注意: (1)进度条不太匀速主要是因为要运行外部程序RAR,DBBACKUP,ATTRIB等 (2)在PB下运行时请不要先打开要备份的数据库,否则会出现不能关闭数据库的错误,如果运行exe则不会. (3)连接数据库设置放在ini文件中,同时把w_backupw_restor中的 inifree.ini 改成你的ini文件 (4)网络数据库的数据备份要把serverdbbackup.exe拷贝到当前目录 (5)网络数据库的数据恢复必须在服务器上用单机的连接方式,即先关闭Sybase Adaptive Server连接,然后再用Sybase SQL Anywhere连接数据库 (6)一定要把rar.exeattrib.exe拷贝到当前目录 4.调用<通用数据字典>的方法 (1)把w_zkl_fzsr拷贝到你的PBL中 (2)把report.db数据库中的fzsr表通过数据管道导入到你的数据库中 (3)在你的数据窗口的doublclicked事件中写上openwithparm(w_zkl_fzsr,this)即可实现这个功能 注意: (1)如果你的事务对象不是sqlca,请修改w_zkl_fzsr中的sqlca为你自己的事务对象 (2)如果数据字典的数据源不是存放在fzsr表中,而是存放在已有的表中, 如在输入"职员编码"字段时需要弹出职员资料表中的数据,那需要在w_zkl_fzsr的open事件中增加一些代码, 增加的代码可以看有关读取商品资料表的例子 该源代码的版权属于致用电脑工作室,需要转载的朋友请注明: 来源:PB通用强档:http://pbreport.126.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值