Skip to content

NTcpServer

NTcpServer类提供封装好的Tcp服务器端接口,可直接用于Tcp通信

  • 接口
接口参数描述
void SetListen(int port);
void SetListen(int port, std::error_code& ec);
port:监听的端口号;ec:错误码设置服务器端的监听端口号
void Start();服务器端开始监听
NTcpServerPtr AcceptTcpClient();
NTcpServerPtr AcceptTcpClient(std::error_code& ec);
ec:错误码接收客户端连接
void Close();
void Close(std::error_code& ec);
ec:错误码关闭连接
void Send(char* data, size_t offset, size_t size, bool bAsync = false, NTransmitCallback callback = nullptr);data:发送的数据;offset:发送数据的偏移量;size:发生的数据量;bAsync:是否为异步通信;callback:异步通信时的回调函数发送数据
void Receive(char* data, size_t offset, size_t size, bool bAsync = false, NTransmitCallback callback = nullptr);data:接收的数据;offset:接收数据的偏移量;size:接收的数据量;bAsync:是否为异步通信;callback:异步通信时的回调函数接收数据

示例代码:

cpp
void TcpServer::OpenServer()
{
    std::error_code ec;
    auto tcpServer = NNetWorkManager::CreateTcpServer();
    tcpServer->SetListen(8080);
    tcpServer->Start();
    comTcp = tcpServer->AcceptTcpClient();
    if (ec)
    {
        LogEngine("初始化失败,失败原因:%s", ec.message().c_str());
    }
    else
    {
        LogEngine( "初始化成功");
    }
}
void TcpServer::SendMsg()
{
    if (comTcp)
    {
        std::string sendmsg = “SendTest”;
        comTcp->Send(sendmsg.data(), 0, strlen(sendmsg.data()));
    }
}
void TcpServer::RecvMsg()
{
    if (comTcp)
	{
	    char buffer[512];
        comTcp->Receive(buffer, 0, 512);

    }

}
void TcpServer::Close(NActorPtr actor)
{
    std::error_code ec;
    if (comTcp)
    {
        comTcp->Close(ec);
    }
    if (tcpServer)
    {
        tcpServer->Close(ec);
    }
}