设计方案基于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