Mongoose c++ Http服务器只获得MG_OPEN_FILE事件
Mongoose C++ Http server get only MG_OPEN_FILE event
我有这个服务器使用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
我这样调用我的服务器:
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;
}
回调函数以
开头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"事件,我不知道原因:所以如果有人知道这其中的原因,我将非常感谢!
当你得到MG_OPEN_FILE
时,检查(char *) mg_get_request_info(conn)->ev_data
它包含mongoose要打开的文件名。如果内存中有该文件,则返回它的数据和大小。如果没有,返回NULL
您的回调是否返回您处理的事件?如果我处理事件,我只返回"yes"。
相关文章:
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- POSIX open() 挂在 SMB 共享上
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- Visual Studio "fatal error LNK1104: cannot open file"未使用或包含的库
- C++ 错误检查 fstream open() 命令和一般字符串流错误处理
- VS 2017 C++ - "cannot open source file 'sqlite3.h' "
- 在VS 15.7.5中,悬停在Open CV 3.4.1Mat上仍然冻结
- 计算着色器Open GL ES的多个输入
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- Open GL ES 3.1 的计算着色器的最小工作示例
- 我可以对"int 文件 = open(path, flag);"做点什么吗?
- 进口。TLB文件给出"cannot open source file x.tlh"
- QtCreator 中的"Fatal Error C1083: Cannot open include file"
- OpenCV: fs.open fails
- Open AL 的函数在 ubuntu 中使用 g++ 编译时给出未定义引用的错误
- 标准::Ofstream Open的Klocwork问题
- Open() 用于创建文件和打开现有文件.有人能分辨出其中的区别
- 成功使用CMakeLists制作后如何修复"open: No such file or directory"错误(该文件实际上存在)
- C++ OPEN SSL 库 HMAC 功能返回值每次运行时都不相同