gpt4 book ai didi

c++ - Mongoose 服务器回调循环

转载 作者:行者123 更新时间:2023-11-28 08:01:52 26 4
gpt4 key购买 nike

在寻找实现 Web 服务器的 C 库之后,我了解到了 Mongoose。我实际上已经通过几个示例使它工作,这些示例调用了实际处理传入和传出数据的回调函数。我在 Windows 上使用,使用 Visual Studio 2008 进行编译和调试。

我称它为 session ,它如下:

int CHttpsCom::Session( void )
{

struct mg_context *ctx;

const char *options[] = {
"listening_ports", "443s",
#ifdef _DEBUG
"ssl_certificate", "c:\\temp\\cert.pem",
#else
"ssl_certificate", "cert.pem",
#endif
NULL
};

ctx = mg_start( &callback, NULL, options );

if( !ctx )
return 1;

//getchar(); // Wait until user hits "enter"
while ( LeaveIt == false );

Sleep(3500);// without this it won't work

mg_stop( ctx );

return 0;

}

100% 的示例我注意到大多数示例使用 getchar 将 session 结束与回调执行结束同步。我有这个 LeaveIt 标志,它是在我收到帖子消息后设置的。如果我不使用上面的 Sleep,我会在库内部遇到死锁。有没有更好的方法来处理这个等待回调结束的问题?

谢谢。

最佳答案

替换

while ( LeaveIt == false );

Sleep(3500);// without this it won't work

通过这个(在最坏的情况下你会节省 CPU 消耗):

while (!LeaveIt)
{
Sleep(500);
}

关于c++ - Mongoose 服务器回调循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11232661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com