コード例 #1
0
ファイル: greeting.cpp プロジェクト: Nehmulos/qhttpserver
Greeting::Greeting()
{
    QHttpServer *server = new QHttpServer;
    server->listen(QHostAddress::Any, 5000);
    connect(server, SIGNAL(newRequest(QHttpRequest*, QHttpResponse*)),
            this, SLOT(handle(QHttpRequest*, QHttpResponse*)));
}
コード例 #2
0
ファイル: bodydata.cpp プロジェクト: RushOnline/qhttpserver
BodyData::BodyData()
{
    QHttpServer *server = new QHttpServer(this);
    connect(server, SIGNAL(newRequest(QHttpRequest*, QHttpResponse*)),
        this, SLOT(handleRequest(QHttpRequest*, QHttpResponse*)));
        
    server->listen(QHostAddress::Any, 8081);
}
コード例 #3
0
ファイル: myserver.cpp プロジェクト: prakdavid/QTRest
MyServer::MyServer()
{
    QHttpServer *server = new QHttpServer(this);
    connect(server, SIGNAL(newRequest(QHttpRequest*, QHttpResponse*)),this, SLOT(handleRequest(QHttpRequest*, QHttpResponse*)));
    if(!server->listen(QHostAddress::Any, 8080))
    {
        qDebug() << "Server could not start!";
    } else {
        qDebug() << "Server listenning...";
    }
}
コード例 #4
0
ファイル: networkmanager.cpp プロジェクト: agel/QAmvLibrarian
NetworkManager::NetworkManager(AmvSettings *amvSettings, QObject *parent) :
    QObject(parent),
    settings(amvSettings)
{
    //UDP
    udpSocket = new QUdpSocket(this);
    udpSocket->bind(settings->DiscoverAddress(), settings->DiscoverPort(), QUdpSocket::ShareAddress);

    connect(udpSocket, &QUdpSocket::readyRead,
            this, &NetworkManager::processDatagrams);
    //HTTP
    QHttpServer *server = new QHttpServer();
    connect(server, &QHttpServer::newRequest,
            this, &NetworkManager::handleReq);
    //TODO normal multithreading
    server->listen(settings->HttpAddress(), settings->HttpPort());
}
コード例 #5
0
ファイル: main.cpp プロジェクト: giraldeau/evnav
int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QCoreApplication::setApplicationName("evnav-cli");
    QCoreApplication::setApplicationVersion("0.1");

    QCommandLineParser parser;
    parser.setApplicationDescription("electric vehicule trip planner");
    parser.addHelpOption();
    parser.addVersionOption();
    parser.addPositionalArgument("osrm", "path to osrm file");
    parser.addPositionalArgument("charger", "path to json charger file");

    parser.process(app);
    const QStringList args = parser.positionalArguments();

    if (args.size() < 2) {
        qDebug() << "missing arguments";
        parser.showHelp(1);
    }

    qDebug() << "loading street data...";
    Evnav evnav(args.at(0));

    qDebug() << "loading chargers...";
    ChargerProvider provider;
    provider.loadJson(args.at(1));
    ChargerProvider dcfc = provider.filter(ChargerProvider::fastChargerFilter);
    qDebug() << "fast chargers found:" << dcfc.size();

    evnav.setChargerProvider(&dcfc);
    evnav.initGraph();

    EvnavServer handler(&evnav);
    EvnavServer *handlerPtr = &handler;

    QRegularExpression evnavUrl{"^/route/v1/evnav/.*"};
    evnavUrl.optimize();

    QHttpServer srv;
    srv.listen(QHostAddress::Any, 8080, [&](QHttpRequest *req, QHttpResponse *res) {
        QRegularExpressionMatch match = evnavUrl.match(req->url().path());
        if (match.hasMatch()) {
            req->onEnd([res, req, handlerPtr]() {
                handlerPtr->handleRequest(req, res);
            });
        } else {
            res->setStatusCode(qhttp::ESTATUS_NOT_FOUND);
            res->end();
        }
        return;

    });

    if (!srv.isListening()) {
        fprintf(stderr, "error spawning the server\n");
        return -1;
    }

    fprintf(stdout, "server listening\n");
    return app.exec();
}