【发布时间】:2016-06-07 16:25:26
【问题描述】:
与 POCO GitHub 问题重复
我正在 Windows 10 上使用 Poco 和 Visual Studio 2015 构建一个简单的 Web 服务器。
Poco::Net::NoMessageException 在使用 Web 浏览器连接到此服务器后几秒钟(大约 15 秒)引发。刷新页面后会再次出现;每次连接后都会这样做。
我没有在文档、论坛、stackoverflow 中找到任何内容。在文档中描述这些来自库深处的异常是如何/何时/为什么被引发的,这将非常有帮助。
我还尝试(只是为了好玩)handleRequest(...) 中的std::cout << req.getURI() << std::endl; 并在地址 0x00000000 处遇到 内存访问冲突,而函数中没有其他代码。
这是我的代码。 预处理器语句被省略。
MyApp.c
int main(int argc, char ** argv)
{
myHTTPServer server;
return server.run(argc, argv);
}
myHTTPRequestHandlerFactory
// Header
class myHTTPRequestHandlerFactory : public HTTPRequestHandlerFactory
{
public:
virtual HTTPRequestHandler* createRequestHandler(const HTTPServerRequest&);
};
// Code
HTTPRequestHandler* myHTTPRequestHandlerFactory::createRequestHandler(const HTTPServerRequest& handler) {
return new myHTTPRequestHandler;
}
myHTTPRequestHandler
// Header
class myHTTPRequestHandler : public HTTPRequestHandler
{
public:
virtual void handleRequest(HTTPServerRequest &, HTTPServerResponse &);
};
// Code
void myHTTPRequestHandler::handleRequest(HTTPServerRequest & request, HTTPServerResponse & response) {
response.setStatus(HTTPResponse::HTTP_OK);
//response.setContentLength(1024);
//response.setChunkedTransferEncoding(true);
std::ostream& out = response.send();
out << "<html><head></head><body>POCO POCO POCO</body></html>";
out.flush();
}
myHTTPServer
// Header
class myHTTPServer : public ServerApplication
{
protected:
int main(const std::vector<std::string>& v) {
HTTPServer server(new myHTTPRequestHandlerFactory, ServerSocket(80), new HTTPServerParams);
server.start();
std::cout << "Server started" << std::endl;
waitForTerminationRequest();
std::cout << "Server stopped" << std::endl;
server.stop();
return Application::EXIT_OK;
}
};
// No code in .c file
谢谢你帮助我
【问题讨论】:
标签: c++ windows visual-studio-2015 poco-libraries