当前位置: 首页 > news >正文

做封面电脑网站长春做网站seo

做封面电脑网站,长春做网站seo,威海网,wordpress媒体库素材打不开前言#xff1a;学习一个基于C集群聊天服务器的项目#xff0c;记录学习的内容和学习的过程。 1.项目介绍 在 Linux 环境下基于 muduo 开发的集群聊天服务器。实现新用户注册、用户登录、添加好友、添加群组、好友通信、群组聊天、保持离线消息等功能。 2.技术栈 Json序列…前言学习一个基于C集群聊天服务器的项目记录学习的内容和学习的过程。 1.项目介绍 在 Linux 环境下基于 muduo 开发的集群聊天服务器。实现新用户注册、用户登录、添加好友、添加群组、好友通信、群组聊天、保持离线消息等功能。 2.技术栈 Json序列化和反序列化muduo网络库开发nginx源码编译安装和环境部署nginx的tcp负载均衡器配置redis缓存服务器编程实践基于发布-订阅的服务器中间件redis消息队列编程实践MySQL数据库编程CMake构建编译环境Github托管项目 3.项目需求 客户端新用户注册客户端用户登录添加好友和添加群组好友聊天群组聊天离线消息nginx配置tcp负载均衡集群聊天系统支持客户端跨服务器通信 4.项目目标 掌握服务器的网络I/O模块业务模块数据模块分层的设计思想掌握C muduo网络库的编程以及实现原理掌握Json的编程应用掌握nginx配置部署tcp负载均衡器的应用以及原理掌握服务器中间件的应用场景和基于发布-订阅的redis编程实践以及应用原理掌握CMake构建自动化编译环境掌握Github管理项目 5.开发环境 ubuntu linux环境安装Json开发库安装boost cmake muduo网络库安装redis环境安装mysql数据库环境安装nginx 5.1安装Linux操作系统 可以选用Centos或者Ubuntu,本人使用Ubuntu 18.04可以使用以下命令查看自己的版本号 lsb_release -a使用是使用虚拟机安装Linux推荐核心数4和内存4G因为安装了接下来的工具内存就很紧张。 5.2配置远程开发环境 当我们使用一台新安装的Linux系统时需要开启sshd服务以确保我们能够远程操作该系统。 首先安装并开启ssh sudo apt-get update //更新源 sudo apt-get install openssh-server //安装 netstat -tanp | grep sshd //查看是否开启sshd服务注意如果不能连上该服务器可以查看下防火墙是否开启本人曾租用的服务器上遇到过 5.3安装muduo网络库 因为muduo库是基于Boost库开发的所以先安装Boost库。 5.3.1安装Booost库 下载Boost库 到下载的目录解压Boost库 tar xzvf boost_1_69_0.tar.gz进入解压后的目录 cd /boost_1_69_0/获取所需的库主要的是boost::regex支持的icu sudo apt-get update sudo apt-get install build-essential g python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-devBoost引导程序设置 ./bootstrap.sh --prefix/usr/执行比较耗时 ./b2安装 sudo ./b2 install测试Boost是否安装成功 #include iostream #include boost/bind.hpp #include string using namespace std;class Hello{public:void say(string name){cout name Nice to meet you! endl;} };int main() {Hello h;auto funcboost::bind(Hello::say,h,Hey boy );func();return 0; }g编译后运行后结果如下则安装成功 5.3.2安装muduo库 一个基于reactor反应堆模型的多线程C网络库。有个这个库我们不需要自己写epoll和线程池了因为muduo已经封装好了它将IO模块和业务模块分开我们主要考虑业务模块IO模块完全由muduo库完成。 解压muduo库 unzip muduo-master.zip进入该目录 cd muduo-master.zip修改CMakeLists.txt第13行 安装cmake然后编译安装muduo库 sudo apt-get install cmake编译 ./build.sh安装muduo库 ./build.sh install把inlcude头文件和lib库文件目录下的文件拷贝到系统目录下 cd ../build/release-install-cpp11/include/sudo mv ./muduo/ /usr/include/cd ../lib/sudo mv * /usr/local/lib/测试安装成功 新建一个Muduo_text.cpp #include muduo/net/TcpServer.h #include muduo/base/Logging.h #include boost/bind.hpp #include muduo/net/EventLoop.h // 使用muduo开发回显服务器 class EchoServer { public:EchoServer(muduo::net::EventLoop* loop,const muduo::net::InetAddress listenAddr);void start(); private:void onConnection(const muduo::net::TcpConnectionPtr conn);void onMessage(const muduo::net::TcpConnectionPtr conn,muduo::net::Buffer* buf,muduo::Timestamp time);muduo::net::TcpServer server_; }; EchoServer::EchoServer(muduo::net::EventLoop* loop,const muduo::net::InetAddress listenAddr): server_(loop, listenAddr, EchoServer) {server_.setConnectionCallback(boost::bind(EchoServer::onConnection, this, _1));server_.setMessageCallback(boost::bind(EchoServer::onMessage, this, _1, _2, _3)); } void EchoServer::start() {server_.start(); } void EchoServer::onConnection(const muduo::net::TcpConnectionPtr conn) { LOG_INFO EchoServer - conn-peerAddress().toIpPort() - conn-localAddress().toIpPort() is (conn-connected() ? UP : DOWN); } void EchoServer::onMessage(const muduo::net::TcpConnectionPtr conn,muduo::net::Buffer*buf,muduo::Timestamp time) {// 接收到所有的消息然后回显muduo::string msg(buf-retrieveAllAsString());LOG_INFO conn-name() echo msg.size() bytes, data received at time.toString(); conn-send(msg); } int main() {LOG_INFO pid getpid();muduo::net::EventLoop loop;muduo::net::InetAddress listenAddr(8888);EchoServer server(loop, listenAddr);server.start();loop.loop(); }编译该文件 g Muduo_text.cpp -lmuduo_net -lmuduo_base -lpthread -stdc11新建一个终端输入 echo Hello world|nc localhost 8888结果如下则成功 5.6安装Json 简介Json是一种轻量级的数据交换格式也叫数据序列化方式。Json采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 Json 成为理想的数据交换语言。 易于人阅读和编写同时也易于机器解析和生成并有效地提升网络传输效率。 它只有一个hpp文件需要时直接include就行无需安装 #include json.hpp using json nlohmann::json;5.7安装Redis 安装Redis可参考这篇博主的文章Ubuntu中安装mysql和redis并配置远程连接 5.8安装Mysql 在Ubuntu中默认情况下只有最新版本的MySQL包含在APT软件包存储库中,要安装它只需更新服务器上的包索引并安装默认包apt-get。 #命令1 sudo apt-get update #命令2 sudo apt-get install mysql-server ## 安装MySQL编程开发包,这是ubuntu的包名其它系统自行搜索 sudo apt-get install libmysqlclient-dev ubuntu18.04默认安装mysql5.7ubuntu20及以上默认安装8.0版本。 查看状态 /etc/init.d/mysql status ##或者使用5.7第一次可能不能用 systemctl status mysql.service第一次登录需要sudo然后修改密码本文修改为123456 sudo mysql ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 123456;初始化mysql mysql_secure_installation登录 mysql -u root -p查看是否安装成功 sudo netstat -tanp出现mysqld说明配置成功 总结 本文简单介绍了该项目的内容、技术栈、需求和目标然后着重介绍了环境的安装配置有个别目前用不上到后面再安装。希望本次环境安装能给大家一点帮主。
http://www.w-s-a.com/news/68962/

相关文章:

  • 温州网站推广网站建设要学会什么
  • c 网站开发框架品牌策划方案范文
  • 儿童摄影作品网站多元网络兰州网站建设
  • 电脑上不了建设厅网站常德网站建设费用
  • 做单页免费模板网站最新办公室装修风格效果图
  • 中国铁路建设投资公司网站熊学军想开网站建设公司
  • 优化一个网站多少钱网站开发北京
  • html教学关键词优化价格
  • 黄冈论坛网站有哪些给wordpress首页添加公告栏
  • 初中做数学题的网站做淘宝必备网站
  • 买拆车件上什么网站谁有那种手机网站
  • 一家专做有机蔬菜的网站万户网络是干嘛的
  • 十堰百度网站建设八宝山做网站公司
  • 地区电商网站系统建筑施工图纸培训班
  • 网站外包维护一年多少钱医院网站 功能
  • 电子商务市场的发展前景seo推广平台服务
  • 乐清网页设计公司哪家好seo推广任务小结
  • 360建筑网是什么pc优化工具
  • 越秀免费网站建设风景区网站建设项目建设可行性
  • 网站建站公司一站式服务学校网站开发招标
  • asp.net mvc 5 网站开发之美电商网站 流程图
  • 室内设计素材网站推荐郑州专业做淘宝网站建设
  • 新建的网站怎么做seo优化模板规格尺寸及价格
  • 平湖网站设计做电子元器件销售什么网站好
  • 可视化网站模板我想建个网站网站怎么建域名
  • 达州网站建设qinsanw南京市建设发展集团有限公司网站
  • django 网站开发实例公司排行榜
  • 韩国做美食网站阳江网站建设 公司价格
  • 网站开发哪里接业务长春高端模板建站
  • 深圳网站制作公司方案dw一个完整网页的代码