目录
类实现
编译测试
这一篇本质上是为了TcpServer而做的一层封装,让外界调用更加简洁
参考上文
TcpServer服务器管理模块(模块十)-CSDN博客
类实现
echo.hpp
#include "../server.hpp"class EchoServer
{
private:TcpServer _server;private:void OnConnected(const PtrConnection &conn){DBG_LOG("NEW CONNECTION:%p", conn.get());}void OnClosed(const PtrConnection &conn){DBG_LOG("CLOSE CONNECTION:%p", conn.get());}void OnMessage(const PtrConnection &conn, Buffer *buf){conn->Send(buf->ReadPosition(), buf->ReadAbleSize());buf->MoveReadOffset(buf->ReadAbleSize());conn->Shutdown(); // 调用关闭接口}public:EchoServer(int port) : _server(port){_server.SetThreadCount(2);_server.EnableInactiveRelease(10);_server.SetClosedCallback(std::bind(&EchoServer::OnClosed, this, std::placeholders::_1));_server.SetConnectedCallback(std::bind(&EchoServer::OnConnected, this, std::placeholders::_1));_server.SetMessageCallback(std::bind(&EchoServer::OnMessage, this, std::placeholders::_1, std::placeholders::_2));}void Start() { _server.Start(); }
};
main.cc
#include "echo.hpp"int main()
{EchoServer server(8500);server.Start();return 0;
}
编译测试
因为本篇是基于使用而创建的一个回显调用,所以对文件的位置进行了修改,加之代码中涉及到了相对文件的引用,所以特此呈现文件的分布情况
服务端显示
客户端回显
符合预期
之后的文献会对该项目进行测试性能,将围绕性能测试来进行说明