栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

moduo windows下简单使用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

moduo windows下简单使用

本人在windows下学习该库,使用的是GitHub - kevin-gjm/muduo-win: muduo in windows

linux下可以使用https://github.com/chenshuo/muduo.git

编译:

​

设置main的入口:

​ 

运行即打开了 tcp_server。

测试连接 ​ 

 进入命令模式:快捷键  :ctrl + ]

  测试代码:

#include "TcpServer.h"
#include "logging.h"
#include 
#include 
using namespace calm;
using namespace calm::net;

class EchoServer
{
public:
	EchoServer(EventLoop* loop,InetAddress& listenAddr)
		:loop_(loop),
		server_(loop,listenAddr,"EchoServer")
	{
	    //给服务器注册用户建立断开连接的回调
		server_.setConnectionCallback(std::bind(&EchoServer::onConnection,this,std::placeholders::_1));
		//给服务器注册用户可读写事件回调
		server_.setMessageCallback(std::bind(&EchoServer::onMessage,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3));
	
		server_.setThreadNum(3);
	}
	void start()
	{
		server_.start();
	}
private:
	void onConnection(const TcpConnectionPtr& conn)
	{
		LOG_INFO << conn->peerAddress().toIpPort() << " -> "
			<< conn->localAddress().toIpPort() << " is "
			<< (conn->connected() ? "UP" : "DOWN");
		conn->send("hello calmn");
	}
	void onMessage(const TcpConnectionPtr& conn, Buffer* buf, Timestamp time)
	{
		string msg(buf->retrieveAllAsString());
		//LOG_INFO << conn->name() << " recv " << msg.size() << " bytes at " << time.toString();
		std::cout << "receive: " << msg  << "n";
 		if (msg == "exitn")
		{
			conn->send("byen");
			conn->shutdown();//关闭写端 
		}
		if (msg == "quitn")
		{
			loop_->quit();
		}
		conn->send(msg);
	}
	EventLoop* loop_;
	TcpServer server_;
};//end EchoServer

int main()
{
	LOG_INFO << "ThreadId = " << getCurrentThreadId();
	EventLoop loop;
	InetAddress listenAddr("127.0.0.1", 8080);
	EchoServer server(&loop, listenAddr);
	server.start();

	loop.loop();
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号