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);
}
}
