UE4之UDP通信
来源:互联网 发布:征服者更新用什么网络 编辑:程序博客网 时间:2024/06/07 18:49
UE4的Sockets模块封装了socket通信,以UDP通信为例说明如何在UE4中实现socket通信
class FUDPTest{private:FSocket* UdpSocket;public:void InitSocket(){FIPv4Address UdpAddr;FIPv4Address::Parse("127.0.0.1", UdpAddr);FIPv4Endpoint Endpoint(UdpAddr, 8001);//本机8001端口int32 BufferSize = 10240;//缓冲区大小,根据具体情况而定FUdpSocketBuilder SocketBuilder = FUdpSocketBuilder(TEXT("UDPSocket"));SocketBuilder.BoundToEndpoint(Endpoint);//绑定地址SocketBuilder.WithReceiveBufferSize(BufferSize);//设置缓冲区大小SocketBuilder.AsNonBlocking();//非阻塞UdpSocket = SocketBuilder;FTimespan Timespan = FTimespan::FromMilliseconds(100);//检查缓冲区间隔时间FUdpSocketReceiver* SocketReceiver = new FUdpSocketReceiver(UdpSocket, Timespan, TEXT("SocketReceiver"));SocketReceiver->OnDataReceived().BindRaw(this, &FUDPTest::OnUdpDataReady);//绑定接收回调函数SocketReceiver->Start();}//接收数据回调void OnUdpDataReady(const FArrayReaderPtr& ArrayReader, const FIPv4Endpoint& Endpoint){uint8* RecvData = ArrayReader->GetData();/*处理接收数据*/}//发送数据函数//ArraySend:需要发送的数据//RemoteIp:目的IP//RemotePort:目的端口void SendUdpData(const TArray& ArraySend,const FString& RemoteIp,int32 RemotePort){static TSharedPtr InternetAddr;if (!InternetAddr.IsValid()){InternetAddr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();}bool bIsValid = false;InternetAddr->SetIp(*RemoteIp, bIsValid);InternetAddr->SetPort(RemotePort);int32 BytesSent = 0;UdpSocket->SendTo(ArraySend.GetData(), ArraySend.Num(), BytesSent, *InternetAddr);}};
阅读全文
0 0
- UE4之UDP通信
- UE4 UDP通信
- 网络通信之UDP
- Socket之UDP通信
- 网络通信之UDP
- UDP之socket通信
- socket之UDP通信
- Socket之UDP通信例子
- c#编程之UDP通信
- java通信之Scoket-UDP
- linux网络通信之udp
- QT之UDP通信总结
- UDP通信之窗口实现
- UDP通信之线程实现
- 关于网络通信之UDP
- [UE4蓝图教程]蓝图入门之蓝图通信机制入门
- JAVA网络编程之UDP通信演示
- UDP通信之网络打洞【转】
- Photoshop加边框脚本
- finally块
- AC自动机
- 套接字实现TCP服务器
- opencv 自带人脸检测模型haarcascade_fromtalface选择对比
- UE4之UDP通信
- 游戏行业的技术化和互动化发展是一大趋势
- matlab的两个复数数组的点乘
- 最少拦截系统
- 关于AR VR应用层开发的学习路径
- XZ_iOS之Runtime使用运行时交换方法
- Android中把bean类集合储存到本地文件中的工具类
- mysql数据库替换表字段包含的某内容
- ActiveMQ集群的安装配置