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 OnUdpDataRead