ue4局域网加入流程

本文简单分析一下ue4在局域网内加入游戏的流程。

ue4游戏中,会列出局域网内所有服务器的基本信息,玩家可以选择一个加入游戏。

加入游戏使用udp协议,具体协议格式如下:

<Ver byte><Platform byte><Game unique 4 bytes><packet type 2 bytes><nonce 8 bytes><payload>
字节1:版本号

字节2:平台类型

字节3-6:游戏唯一标识

字节7-8:包类型

字节9-16:客户端唯一标识随机数
后面还可跟一些其他数据

使用的协议有如下两个:

	DEFINE_ONLINE_DELEGATE_THREE_PARAM(OnValidQueryPacket, uint8*, int32, uint64);
	DEFINE_ONLINE_DELEGATE_TWO_PARAM(OnValidResponsePacket, uint8*, int32);
协议OnValidQueryPacket:用于客户端向局域网内的服务器请求服务器信息

协议OnValidResponsePacket:用于服务器向客户端返回服务器信息

我们可以在以下函数看到两个协议的处理过程

void FOnlineSessionNull::OnValidQueryPacketReceived(uint8* PacketData, int32 PacketLength, uint64 ClientNonce)
void FOnlineSessionNull::OnValidResponsePacketReceived(uint8* PacketData, int32 PacketLength)
具体过程很简单,客户端向局域网广播OnValidQueryPacket消息,服务器收到该消息向客户端返回OnValidResponsePacket消息,客户端收到来自不同服务器的OnValidResponsePacket消息,把收到的服务器信息加到一个列表中,并显示出来

以上过程主要涉及到的源码为 LANBeacon.h/cpp和OnlineSessionInterfaceNull.h/cpp文件







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值