目录
这一篇本质上是为了TcpServer而做的一层封装,让外界调用更加简洁
参考上文
类实现
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;
}
编译测试
因为本篇是基于使用而创建的一个回显调用,所以对文件的位置进行了修改,加之代码中涉及到了相对文件的引用,所以特此呈现文件的分布情况
服务端显示
客户端回显
符合预期
之后的文献会对该项目进行测试性能,将围绕性能测试来进行说明