2024年C C++最新C++项目——集群聊天服务器项目(一)项目介绍、环境搭建(2),互联网寒冬

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

#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 func=boost::bind(&Hello::say,&h,"Hey boy ");
	func();
	return 0;
}

如果打印结果:

代表安装成功!

4.2.2 muduo库安装

muduo库是一个基于reactor反应堆模型的多线程C++网络库,基于Boost开发的。

(1)解压muduo压缩文件

unzip muduo-master.zip

(2)进入解压目录

cd muduo-master

(3)vi编辑CMakeLists.txt文件,注释第十三option行,保存退出

(4)运行build.sh源码编译构建程序,muduo是用cmake来构建的,需要安装cmake

命令:

sudo apt-get install cmake

编译:

./build.sh

编译完成,安装muduo库

./build.sh install

(5)拷贝头文件和库文件路径

把inlcude(头文件)和lib(库文件)目录下的文件拷贝到系统目录下

cd build/release-install-cpp11/include/

mv muduo/ /usr/include/
cd../lib/
mv * /usr/local/lib/

(6)编写测试代码,测试muduo是否能正常使用

#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 -std=c++11

执行./a.out文件,程序开始运行,再开启一个终端,输入

echo "Hello world"|nc localhost 8888

终端回显Hello world,且服务器端打印日志信息,证明muduo库安装成功!

4.3 Json第三方库

使用json.hpp第三方库

JSON for Modern C++ 是一个由德国大牛 nlohmann 编写的在 C++ 下使用的 JSON 库。

#include "json.hpp"
using json = nlohmann::json;

4.4 安装Redis环境

安装Redis可参考这篇博主的文章:Ubuntu中安装mysql和redis并配置远程连接_ubuntu redis远程访问-CSDN博客

4.5 安装Mysql环境

sudo apt-get install mysql-server    =》 安装最新版MySQL服务器
sudo apt-get install libmysqlclient-dev =》 安装开发包

最后只要能使用

mysql -u root -p

登录,密码是123456即可

使用命令:

netstat	-tanp

查看是否安装成功

如果看到有mysqld与redis-server服务开启即可

4.7 nginx环境可后续再安装

4.8 配置远程开发环境

我选用的开发方式是:windows+vscode配置远程Linux开发环境

注意注意注意!这里vscode要用管理员方式打开

(1)linux系统运行sshd服务

见上图开启mysqld与redis-server服务,可以看到开启sshd服务

(2)在vscode上安装Remote Development插件,其依赖插件会自动安装

当然,还要下载C/C++、Code Runner和CMake等插件,见下图,大家自行安装

(3)配置远程linux主机的信息

左边的小图标,有个远程电脑样式

点击SSH右边的小齿轮,打开SHH配置文件

选择第一个config文件

IP地址可用

ifconfig

命令查看

(4)在vscode上开发远程连接linux

点击在当前窗口连接,输入密码即可登陆成功

至此,环境配置成功!

需特别注意:vscode管理员身份运行、.ssh权限问题以及ssh扩展设置问题

大家可以先按照上述步骤搭建环境,搭建成功后进行接下来的项目研究!

如果有问题,还请及时联系我,感谢~

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

nimg.cn/direct/2bd1a90d3e7445e485a62570f0fe797b.png)

如果有问题,还请及时联系我,感谢~

[外链图片转存中…(img-n35cgH6A-1715547973230)]
[外链图片转存中…(img-YuuV9kVf-1715547973231)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值