首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose C++ Http服务器仅获取MG_OPEN_FILE事件

Mongoose C++ Http服务器仅获取MG_OPEN_FILE事件
EN

Stack Overflow用户
提问于 2013-01-17 05:29:41
回答 2查看 460关注 0票数 0

我有一个使用mongoose的服务器,它接受一些请求,解析信息,执行一个操作并返回结果。

例如,我可以这样查询server:port/action?arg1=test&arg2=...

我的问题是,每当我查询服务器时,我只能得到"MG_OPEN_FILE“事件。对于每个请求,我会得到3个请求。

我读到在http查询中有一些可能是正常的,但这里的问题是我没有任何"MG_NEW_REQUEST“事件。

基本上,每当我启动服务器时,第一个连接(以及之后的所有连接)总是返回以下事件: MG_OPEN_FILE

MG_OPEN_FILE

MG_OPEN_FILE

MG_REQUEST_COMPLETE

我这样调用我的服务器:

代码语言:javascript
复制
int main(int argc, char* argv[]) {
  struct mg_context *ctx;
  const char *options[] = {"listening_ports", "8080", "num_threads","10",  NULL};
  ctx = mg_start(&callback, NULL, options);
  while(1){  
      getchar(); // Wait until user hits "enter"
  }
  mg_stop(ctx);
  return 0;
}

回调函数的开头是:

代码语言:javascript
复制
static void *callback(enum mg_event event, struct mg_connection *conn)
{

const struct mg_request_info *request_info = mg_get_request_info(conn);
if (event == MG_NEW_REQUEST)
{

但它总是一个"MG_OPEN_FILE“事件,我不知道原因:(所以如果有人知道这是什么原因,我将非常感谢!)

EN

回答 2

Stack Overflow用户

发布于 2013-01-31 18:44:48

当你得到MG_OPEN_FILE时,检查(char *) mg_get_request_info(conn)->ev_data它包含了mongoose想要打开的文件名。如果内存中有该文件,则返回其数据和大小。如果没有,则返回NULL

票数 1
EN

Stack Overflow用户

发布于 2013-01-19 05:51:36

您的回调是否返回您处理了该事件?如果我处理这个事件,我只返回"yes“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14368188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档