Poco库实现简单的http服务器

// TState.cpp : Defines the entry point for the console application.
//

#include "TState.h"

#include 
#include 
#include 
#include "Poco/Net/DNS.h"
#include "Poco/Net/ServerSocket.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketStream.h"
#include "Poco/Net/SocketAddress.h"
#include "Poco/Net/SocketAddress.h"
#include "Poco/Net/StreamSocket.h"
#include "Poco/Net/SocketStream.h"
#include "Poco/StreamCopier.h"
#include 
#include 
#include 
#include 
#include 

using Poco::Net::DNS;
using Poco::Net::IPAddress;
using Poco::Net::HostEntry;

class RootHandler: public Poco::Net::HTTPRequestHandler
{
public:
    void handleRequest(Poco::Net::HTTPServerRequest& request,
        Poco::Net::HTTPServerResponse& response)
    {
        response.setChunkedTransferEncoding(true);
        response.setContentType("text/html");
        std::ostream& ostr = response.send();
        ostr << "HTTP Server powered by POCO C++ Libraries";
        ostr << "";
        ostr << "

hello

"; ostr << ""; } }; class MyRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory{ public: MyRequestHandlerFactory(){}; ~MyRequestHandlerFactory(){}; public: virtual Poco::Net::HTTPRequestHandler* createRequestHandler(const Poco::Net::HTTPServerRequest& request) { return new RootHandler; }; }; int main(int argc, char** argv) { Poco::UInt16 port = 1080; Poco::Net::HTTPServerParams * pParams = new Poco::Net::HTTPServerParams; pParams->setMaxQueued(100); pParams->setMaxThreads(16); Poco::Net::ServerSocket svs(port); // set-up a server socket Poco::Net::HTTPServer srv(new MyRequestHandlerFactory(), svs, pParams); // start the HTTPServer srv.start(); //waitForTerminationRequest(); getchar(); // Stop the HTTPServer srv.stop(); return 0; }


你可能感兴趣的:(网络编程)