Oatpp创建服务器项目(windows)

这篇具有很好参考价值的文章主要介绍了Oatpp创建服务器项目(windows)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境配置

1.vs2017(Oatpp需要c++11支持)

2.Oatpp-1.3.0源码

oatpp,开源项目,c++,服务器,github,http,websocket

3.CMake(编译成lib的话需要使用)

 

二、构建lib的步骤

1.安装cmake

2.执行

oatpp,开源项目,c++,服务器,github,http,websocket

3.打开项目可以编译

oatpp,开源项目,c++,服务器,github,http,websocket

三、使用Oatpp开发http服务器

1.创建项目

oatpp,开源项目,c++,服务器,github,http,websocket

2.添加Oatpp源码

oatpp,开源项目,c++,服务器,github,http,websocket

3.配置项目---添加源码

oatpp,开源项目,c++,服务器,github,http,websocket

 oatpp,开源项目,c++,服务器,github,http,websocket

4.添加修改个别文件的编译输出路径(会报同名错误)

warning MSB8027: 名为 *.cpp 的两个或更多文件将生成到同一位置的输出。

Oatpp有几个同名的文件需要修改,也可以在.vcxproj修改

oatpp,开源项目,c++,服务器,github,http,websocket

oatpp,开源项目,c++,服务器,github,http,websocket

<ClCompile Include="Oatpp\oatpp\core\async\Executor.cpp">

    <ObjectFileName>$(IntDir)/oatpp/core/async/Executor.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\core\async\Processor.cpp">

    <ObjectFileName>$(IntDir)/oatpp/core/async/Processor.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\core\data\buffer\Processor.cpp">

    <ObjectFileName>$(IntDir)/oatpp/core/data/buffer/Processor.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\core\data\mapping\ObjectMapper.cpp">

    <ObjectFileName>$(IntDir)/oatpp/core/data/mapping/ObjectMapper.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\network\ConnectionProvider.cpp">

    <ObjectFileName>$(IntDir)/oatpp/network/ConnectionProvider.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\network\tcp\server\ConnectionProvider.cpp">

    <ObjectFileName>$(IntDir)/oatpp/network/tcp/server/ConnectionProvider.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\network\virtual_\client\ConnectionProvider.cpp">

    <ObjectFileName>$(IntDir)/oatpp/network/virtual_/client/ConnectionProvider.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\network\virtual_\server\ConnectionProvider.cpp">

    <ObjectFileName>$(IntDir)/oatpp/network/virtual_/server/ConnectionProvider.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\orm\Executor.cpp">

    <ObjectFileName>$(IntDir)/oatpp/orm/Executor.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\parser\json\mapping\ObjectMapper.cpp">

    <ObjectFileName>$(IntDir)/oatpp/parser/json/mapping/ObjectMapper.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\web\protocol\http\incoming\Request.cpp">

    <ObjectFileName>$(IntDir)/oatpp/web/protocol/http/incoming/Request.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\web\protocol\http\incoming\Response.cpp">

    <ObjectFileName>$(IntDir)/oatpp/web/protocol/http/incoming/Response.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\web\protocol\http\outgoing\Request.cpp">

    <ObjectFileName>$(IntDir)/oatpp/web/protocol/http/outgoing/Request.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\web\protocol\http\outgoing\Response.cpp">

    <ObjectFileName>$(IntDir)/oatpp/web/protocol/http/outgoing/Response.cpp.obj</ObjectFileName>

</ClCompile>

<ClCompile Include="Oatpp\oatpp\network\tcp\client\ConnectionProvider.cpp">

    <ObjectFileName>$(IntDir)/oatpp/network/tcp/client/ConnectionProvider.cpp.obj</ObjectFileName>

</ClCompile>

oatpp,开源项目,c++,服务器,github,http,websocket

5.添加库目录

oatpp,开源项目,c++,服务器,github,http,websocket

wsock32.lib

ws2_32.lib

kernel32.lib

user32.lib

gdi32.lib

winspool.lib

shell32.lib

ole32.lib

oleaut32.lib

uuid.lib

comdlg32.lib

advapi32.lib

6.添加代码(案例)

handler.h

#pragma once

 

#ifndef HANDLER_H

#define HANDLER_H

 

#include "oatpp/web/server/HttpRequestHandler.hpp"

 

#define O_UNUSED(x) (void)x;

 

// 自定义请求处理程序

class Handler : public oatpp::web::server::HttpRequestHandler

{

public:

// 处理传入的请求,并返回响应

std::shared_ptr<OutgoingResponse> handle(const std::shared_ptr<IncomingRequest>& request) override {

O_UNUSED(request);

 

return ResponseFactory::createResponse(Status::CODE_200, "Hello, World!");

}

};

 

#endif // HANDLER_H

main.cpp

//#include <stdio.h>

//#include <iostream>

 

#include "oatpp/web/server/HttpConnectionHandler.hpp"

#include "oatpp/network/tcp/server/ConnectionProvider.hpp"

#include "oatpp/network/Server.hpp"

#include "handler.h"

 

void run()

{

// 为 HTTP 请求创建路由器

auto router = oatpp::web::server::HttpRouter::createShared();

 

// 路由 GET - "/hello" 请求到处理程序

router->route("GET", "/hello", std::make_shared<Handler>());

 

// 创建 HTTP 连接处理程序

auto connectionHandler = oatpp::web::server::HttpConnectionHandler::createShared(router);

 

// 创建 TCP 连接提供者

auto connectionProvider = oatpp::network::tcp::server::ConnectionProvider::createShared({ "localhost", 8000, oatpp::network::Address::IP_4 });

 

// 创建服务器,它接受提供的 TCP 连接并将其传递给 HTTP 连接处理程序

oatpp::network::Server server(connectionProvider, connectionHandler);

 

// 打印服务器端口

OATPP_LOGI("MyApp", "Server running on port %s", connectionProvider->getProperty("port").getData());

 

// 运行服务器

server.run();

}

 

int main()

{

// 初始化 oatpp 环境

oatpp::base::Environment::init();

 

// 运行应用

run();

 

// 销毁 oatpp 环境

oatpp::base::Environment::destroy();

 

return 0;

}

7.编译

oatpp,开源项目,c++,服务器,github,http,websocket

8.测试

运行exe程序:

浏览器输入: http://127.0.0.1:8000/hello

oatpp,开源项目,c++,服务器,github,http,websocket

 

warning MSB8027: 名为 *.cpp 的两个或更多文件将生成到同一位置的输出。这会导致错误的生成结果。

VC++编译源文件时默认全部输出(对象文件)到同一个目录下,遇到同名源文件覆盖前面的同名对象文件。为了解决这个问题,你可以设置输出路径与源文件路径类似。

右键项目->属性->配置属性->C/C++->输出文件->对象文件名,将$(IntDir)改为$(IntDir)\$(RelativeDir)\。

oatpp,开源项目,c++,服务器,github,http,websocket文章来源地址https://www.toymoban.com/news/detail-666831.html

到了这里,关于Oatpp创建服务器项目(windows)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows下 创建 FTP 服务器及相关设置

    ​ 本次测试有三个用户,对应三个用户文件夹,分别为FTP1、FTP2、FTP_admin1,每个用户只能访问自己的文件夹和共享文件夹(FTP_ALL ),匿名用户只能访问 publish 文件夹,不能访问共享文件夹。 功能实现: 每个用户只能访问自己的文件夹,可读可写; 使用 FTP 用户隔离功能(

    2024年02月17日
    浏览(45)
  • 华三服务器R4900 G3通过管理口创建RAID1,安装Windows服务器系统(Windows server 2016)

    通过一根网线接到H3C服务器的HDM管理口,配置IP地址为192.168.1.1:24(服务器的管理地址为192.168.1.2) 材料: 服务器:Uniserver R4900 G3 Windows server 2016(系统镜像) 一条网线 一台电脑(笔记本)可以插网线的               Disabled:关闭;Enabled:开启;   check all:将所有硬盘修

    2024年02月07日
    浏览(49)
  • AutoDL服务器(其他服务器及windows类似)上创建虚拟环境,安装第三方包,conda相关命令

    1.服务器终端输入:vim ~/.bashrc 注: .bashrc文件一般式隐藏文件,用命令 ls -a 可显示所有文件;~代表你的 /home/用户名 目录。 2.键盘输入:i,移动光标到最后,加上: source /root/miniconda3/etc/profile.d/conda.sh 注: /miniconda3/etc/profile.d/conda.sh 后面这个一般没问题;前面部分不同的服

    2023年04月08日
    浏览(57)
  • JAVA-服务器搭建-创建web后端项目

       

    2024年04月22日
    浏览(72)
  • Windows服务器部署项目自启动

    1.下载jar包 https://github.com/kohsuke/winsw 2.重命名 3. 编辑xml文件 4.启动 5.验证 win+R 输入 services.msc 即可查看

    2024年02月11日
    浏览(39)
  • windows怎么部署项目到云服务器

    要将项目部署到云服务器,可以按照以下步骤进行操作: 1. 在云服务提供商上创建一个云服务器实例,并确保已经将其配置和启动。 2. 在本地开发环境中将项目打包成可执行文件或者jar包,并确保项目能够正确运行。 3. 使用远程连接工具(如SSH、RDP等)登录到云服务器。 4. 在

    2024年02月14日
    浏览(49)
  • IDEA社区版搭建Tomcat服务器并创建web项目

    创建Web项目的目录结构 可以启动Tomcat服务器 编写Servlet并访问成功 IDEA社区版没有创建Web工程的选项 IDEA社区版没有Tomcat插件 针对以上两个问题,分步解决 问题一:IDEA社区版没有创建Web工程的选项 创建普通的java项目,此处不再赘述 构建web项目的目录结构 设置编译目录 在

    2023年04月26日
    浏览(62)
  • 【实用的开源项目】使用服务器部署Wiki.js,一个美观且强大的开源Wiki程序

    上个月小俊介绍了一款支持跨平台、跨终端的在线文档、知识库管理程序: MrDoc觅思文档 ,后来又在寻找有没有其他的程序,这不,美观且强大的开源Wiki程序: Wiki.js ,简单使用之后,感觉还不错,也推荐给大家,现在就教大家如何部署这款程序。 官方网站: https://js.wik

    2024年01月25日
    浏览(64)
  • window服务器环境将springboot项目 jar包安装成一个window服务自启动

    目录 1.下载WinSW工具 2.新建一个Window Service信息的xml文件 3.将xml和exe重命名 4.安装卸载服务 5.修改配置文件 6.常用命令(注意winsw是exe名字 将下载的WinSW-x64.exe和新建的xml文件,名字需要保持一致 卸载需要 关闭服务后 再执行卸载命令,不然刷新后还会在服务列表,只是服务已经

    2024年02月08日
    浏览(38)
  • 通过OpenIddict设计一个授权服务器02-创建asp.net项目

    在这一部分中,我们将创建一个ASPNET核心项目,作为我们授权服务器的最低设置。我们将使用MVC来提供页面,并将身份验证添加到项目中,包括一个基本的登录表单。 正如前一篇文章中所说,授权服务器只是另一个web应用程序。以下内容将指导您使用用户名密码登录来设置

    2024年01月18日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包