在寻找一个实现 Web 服务器的 C 库后,我学习了 Mongoose。实际上,我已经通过几个示例使其工作,这些示例调用了实际处理传入和传出数据的回调函数。我在 Windows 上使用,使用 Visual Studio 2008 进行编译和调试。
我称它为会话,它如下:
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 将会话结束与回调执行结束同步。我在收到一条消息后设置了这个 LeaveIt 标志。如果我不使用上面的 Sleep,我会在库内部出现死锁。有没有更好的方法来处理这个等待回调结束?
谢谢。