← 返回文章

系统登录发现服务设计

设计方案基于UDP实现。 基本流程: 服务端绑定4886端口进行进行广播监听,当收到 Discovery.ClientName.IP 时,对相应客户端回复自身的连接信息如: earth/instance1 。客户端监听…

#C++
C++

设计方案基于UDP实现。

基本流程:

服务端绑定4886端口进行进行广播监听,当收到[Discovery.ClientName.IP]时,对相应客户端回复自身的连接信息如:[earth/instance1]。客户端监听端口为4887,当收到回应为以上格式时,记录其返回连接数据。

客户端:取得当前的掩码,获取广播地址。(可以直接使用255.255.255.255)往端口号4886发送广播,内容为[Discovery.ClientName]。未来考虑加密该数据。启动 监听线程,监听端口为4887,定时30秒结束监听。当收到回应,格式如下:[DISC]:[earth/instance1],记录其返回连接数据。

如果有多个服务端实例,返回格式如下:[DISC]:[earth/instance1];[earth/instance2];[earth/instance3]

选择登录服务器后,记录到roming/DISC/launcher.ini

格式:

        [Login Info]
            Company=A
            User = 001
        [Recent Server]
            Server=XXXX