您的位置:首页 > 产品设计 > UI/UE

UE4 连接自定义服务器

2016-06-29 09:07 891 查看


UE4 连接自定义服务器

在虚幻引擎中连接自定义服务器

 

UE4 dedicated server是一个很好的游戏服务器,但是对于大厅和聊天服务器来说,我们要自行开发,通过UE4的socket组建很方便的和其他服务器建立连接

创建Socket

FSocket* Socket = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateSocket(NAME_Stream, TEXT("default"), false);

CreateSocket参数
类型
描述
是否强制UDP
 

设置地址

FString address = TEXT("127.0.0.1");
int32 port = 19834;
FIPv4Address ip;
FIPv4Address::Parse(address, ip);

TSharedRef addr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();
addr->SetIp(ip.GetValue());
addr->SetPort(port);

 
连接服务器
 
bool connected = Socket->Connect(*addr);

如果返回True说明连接服务器成功.
 

发送消息

FString serialized = TEXT("loadPlayer|1");
TCHAR *serializedChar = serialized.GetCharArray().GetData();
int32 size = FCString::Strlen(serializedChar);
int32 sent = 0;

 
发送内容FString转换成TCHAR*,格式化发送数据
bool successful = Socket->Send((uint8*)TCHAR_TO_UTF8(serializedChar), size, sent);

接受数据我们用到 HasPendingData 和Recv 函数在 FSocket 类中.
在工程中引用Sockets模块
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"CoreUObject",
"Engine",
"Sockets"
}
);

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: