Skip to content

NUdpClient

NUdpClient类提供封装好的Udp客户端接口,可直接用于Udp通信

  • 接口
接口返回值说明
void SetBindPort(int port);
void SetBindPort(int port, std::error_code& ec);
port:端口号;ec:错误码设置当前绑定的端口号
void SetRemoteIPHost(NIPEndPointPtr remote);
void SetRemoteIPHost(NIPEndPointPtr remote, std::error_code& ec);
remote:远端IP及端口号;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 SendTo(char* data, size_t offset, size_t size, NIPEndPointPtr remote, bool bAsync = false, NTransmitCallback callback = nullptr);data:发送的数据;offset:发送数据的偏移;size:发送数据的数据量;bAsync:是否为异步发送;callback:异步回调函数发送数据到指定IP及端口号
void Receive(char* data, size_t offset, size_t size, bool bAsync = false, NTransmitCallback callback = nullptr);data:接收的数据;offset:接收数据的偏移;size:接收数据的数据量;bAsync:是否为异步接收;callback:异步回调函数接收信息
void ReceiveFrom(char* data, size_t offset, size_t size, NIPEndPointPtr remote, bool bAsync = false, NTransmitCallback callback = nullptr);data:接收的数据;offset:接收数据的偏移;size:接收数据的数据量;bAsync:是否为异步接收;callback:异步回调函数从对应IP及端口号接收到信息
void JoinMulticastGroup(const std::string& ip);ip:加入的多播组ip加入多播组
void LeaveMulticastGroup(const std::string& ip);ip:离开的多播组ip离开多播组
void SetBroadcast(bool value);value:是否开启广播设置广播

示例代码:

cpp
void Udp::Init()
{
    auto udpClient = NNetWorkManager::CreateUdpClient();
	udpClient->SetBindPort(8080);
}
void Udp::SendMsg()
{
    if (udpClient)
    {
        NIPEndPointPtr endPoint1 = NNetWorkManager::CreateIPEndPoint(“127.0.0.1”, 8081);
        std::string sendmsg = “TestSend”;
        udpClient->SendTo(sendmsg.data(), 0, strlen(sendmsg.data()), endPoint1);
    }
}
void Udp::RecvMsg()
{
	if (udpClient)
    {
        NIPEndPointPtr endPoint1 = NNetWorkManager::CreateIPEndPoint(“127.0.0.1”, 8081);
        char buffer[512];
        udpClient->ReceiveFrom(buffer, 0, 512, endPoint1);
    }
}
void Udp::Close()
{
    std::error_code ec;
    if (udpClient)
    {
        udpClient->Close(ec);
    }
}