接下来继续撸代码,接下来是创建UDP服务的方法
void AUDPActor::StartUDPReceiver(const FString & SocketName, const FString & TheIP, const int32 ThePort, bool & isSuccess)
{
//查un关键一个非空的共享指针,类型为FInternetAddr,用于存储IP地址和端口号
TSharedRef<FInternetAddr>TargetAddr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();
//用于存储转换后的IP地址
FIPv4Address IPv4Addr;
//将输入的 FString 类型的IP地址转换为 FIPv4Address
FIPv4Address::Parse(TheIP, IPv4Addr);
//接收从任何来源发来的信息
FIPv4Endpoint EndPoint(FIPv4Address::Any, ThePort);
//Socket相关设置
ActorSocket = FUdpSocketBuilder(*SocketName)
.AsNonBlocking()
.WithBroadcast()
.AsReusable()
.BoundToEndpoint(EndPoint)
.WithReceiveBufferSize(2 * 1024 * 1024);
//设置 接收/发送 的数据大小
int32 BufferSize = 2 * 1024 * 1024;
ActorSocket->SetSendBufferSize(BufferSize, BufferSize);
ActorSocket->SetReceiveBufferSize(BufferSize, BufferSize);
//检查是否成功创建Socket
if (ActorSocket == nullptr)
{
isSuccess = false;
}
else
{
isSuccess = true;
}
}
接下来是接收数据消息的代码