1.安装Tufao

注意:Tufao是基于Qt的通信库,所以必须确保已经安装了Qt,配置好环境变量; 关于Qt版本要求在Tufao的github上有描述,这里实用的是Qt5.7;

可能需要先sudo apt-get install cmake qtsdk

在Github上查找tufao,点击release,下载1.4.0版本的代码(因为1.4.1版本cmake过程中提示:用到的boost/http/...目录,实际安装boost库编译安装 之后没有那个文件夹。。。百度不得其解,所以 只有);在代码解压的目录,新建build文件夹,进入build目录中执行编译命令 cmake .. -DCMAKE_INSTALL_PREFIX=/usr   ;然后 make install 即可。

2.Tufao的使用

新建 Empty Qt Project 并创建无窗口程序

main.cpp如下:

 #include<QCoreApplication>       //用于在创建无窗口程序时替代QApplication  #include "MyServer.h"        //新添加的类继承于QObject    int main(int argc,char*argv[])
    {      QCoreApplication app(argc,argv);    Myserver* s = new MyServer;    app.exec();
    }
test.pro文件如下:
 HEADERS += MyServer.h SOURCES += MyServer.cpp main.cpp  CONFIG +=Tufao1 C++11          //为了实现Web服务器,需要为 CONFIG 添加 Tufao1 ,这个配置文件会自动将Tufao相关的库导入到工程。 

MyServer.h内容

#ifndef MYSERVER_H
#define MYSERVER_H#include <QObject>
#include <Tufao/HttpServer>
#include <Tufao/HttpServerRequest>
#include <Tufao/HttpServerResponse>using namespace Tufao;class MyServer : public QObject
{Q_OBJECT
public:explicit MyServer(QObject *parent = 0);HttpServer * server;
signals:public slots:void slotRequestReady(Tufao::HttpServerRequest&,Tufao::HttpServerResponse&);};#endif // MYSERVER_H

MyServer.cpp内容

#include "MyServer.h"MyServer::MyServer(QObject *parent) :QObject(parent)
{server = new HttpServer;if(server->listen(QHostAddress::Any,8080))          //Http通信过程,server端只需要listen即可{qDebug()<<"listen at 8080 OK";}else{qDebug()<<"listen error at 8080";}

   //connect(server,SIGNAL(requestReady(Tufao::HttpServerRequest&,Tufao::HttpServerResponse&)),//      this,SLOT(slotRequestReady(Tufao::HttpServerRequest&,Tufao::HttpServerResponse&)));//推荐使用connect函数的下面的写法,因为直接给出了函数地址,执行效率更高,函数参数省略了,修改更快;缺点是要是有槽函数重载时不能使用这种方式。connect(server,&HttpServer::requestReady,this,&MyServer::slotRequestReady);}void MyServer::slotRequestReady(HttpServerRequest&req,HttpServerResponse&res)
{res.writeHead(HttpResponseStatus::OK);        //Http通信规定,首先要发一个执行结果。  res.write("hello world\n");res.write("body of comunication\n");         //可以有很多个write,但是必须最后以 end 结束。猜想需要通过end确定报文的长度。res.end("this is the end of this message\n");
}

运行成功之后,在LINUX terminal 命令行下面使用curl测试;

执行 curl 127.0.0.1:8080

返回的报文直接打印。

Tufao server复习001相关推荐

  1. SQL server 复习一

    第一天 下面我们从最基础的开始: 在运行里面输入:services.msc 一.启动服务 二.数据库登录的两种身份验证方式 另外一种身份验证方式就是SQL Server身份验证. sa不能使用的时候可 ...

  2. shell编程脚本练习题

    1.使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为: [root@oldboy oldboy]# sh /server/scr ...

  3. sql语句进阶教程(学习sql这一篇就够了)

    转载自:http://blog.csdn.net/u011001084/article/details/51318434 最近从图书馆借了本介绍SQL的书,打算复习一下基本语法,记录一下笔记,整理一下 ...

  4. ossec开源入侵检测系统安装配置

    ossec开源入侵检测系统安装配置,文档对server/agent模式进行详细介绍,如果只有一台服务器,可以用local模式,这种方式安装更为简单. OSSEC简要介绍:  OSSEC 是一款开源的入 ...

  5. sql创建计算机用户,2015年计算机四级数据库复习要点:SQL Server 登录账户

    2015年计算机四级数据库复习要点:SQL Server 登录账户 系统内置的登录账户 1. BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Adm ...

  6. python编写自定义函数判断n1-n2范围内的素数_【每日道代码题001】- PYTHON基础复习...

    问题001-1:请对输入三个整数a,b,c,判断能否以它们为三个边长构成三角形.若能,输出YES和面积,否则输出NO a = float(input()) b = float(input()) c = ...

  7. Sql server 期末知识点复习

    **数据库基础概念: 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 数据库复习知识 数据库基本概念 一.第一章概念知识复习 二.数据库创建,数据库及数据库对象 数据库基本概念 一. ...

  8. SQL Server 入门复习(2008)图解

    1 首先找到开始菜单中相关内容:如下图:安装的组件不同可能有所不同:我的电脑中包括如下项: 商业智能:管理控制台:导入和导出数据:分析服务:集成服务:配置工具:文档和教程:性能工具: 因为偶装的组件多 ...

  9. SQL Server 2008 复习(一)

    导入 有关数据库系统的基本概念 1.信息与数据: 数据(Data)是描述事物的符号记录,数据的表现形式,可以是文本.图表.图形.图像.声音.语言.视频等. 信息(Information)是具有特定意义 ...

最新文章

  1. 进来进程有人问表空间的迁移问题
  2. Tomcat8配置tomcat-users.xml配置
  3. java mina多线程_Java多线程基础总结九:Mina窥探(1)
  4. Docker是个啥?
  5. [转帖]最值得了解的10大开源技术
  6. DM8168_ETV_V1.1开发板mount主机常见问题
  7. AlphaGo:人工智能与深度学习
  8. tmp ubuntu 自动删除吗_tmp 目录文件被自动清理问题的调查
  9. JDK 14 调试神器了解一下?| 原力计划
  10. 在Eclipse4.2x中安装最新版插件WindowsBuilder
  11. vivo 计算机怎么使用方法,vivo怎么能连接到电脑
  12. html记事本制作静态网页,记事本编辑html静态网页设计(3页)-原创力文档
  13. Vue+Element ui中常用表单验证----手机号、座机、传真、邮箱、身份证号、数字和带小数点的数字
  14. Android OrangePi 4G IOT(五) - MTK电源管理驱动(一)
  15. c语言max条件句,if条件句(if条件句的四种用法)
  16. python祝福,1024,用Python抽取你的专属祝福!
  17. Router-view
  18. 网络培训计算机培训心得体会,计算机网络网络培训心得体会
  19. 手机sd卡恢复工具android版,手机内存卡文件恢复工具(SD卡数据恢复助手)V1.5 正式版...
  20. 效率更快的代码生成器

热门文章

  1. python源码图片_初学者用python爬凡客图片的源码
  2. App推广干货:一个新的App该如何推广
  3. 淮海工学院linux实验二文件IO操作,淮海工学院计算机科学系
  4. linux系统编程之管道(二):管道读写规则和Pipe Capacity、PIPE_BUF
  5. asp医药连锁店管理系统
  6. 2020常州市程序设计小能手真题及题解
  7. 黑客攻击常用端口详解总结
  8. 将windows2000升级到windows2003系统
  9. 服务器租用对比托管的优势
  10. 职业道德 技术交流