public static void IntroduceToServer(long currentEntryId) { var token = RandomString(10); var ownEndpoint = new IPEndPoint(LunaNetUtils.GetMyAddress(), NetworkMain.Config.Port); LunaLog.Log($"[LMP]: Sending NAT introduction to server. Token: {token}"); var msgData = NetworkMain.CliMsgFactory.CreateNewMessageData <MsIntroductionMsgData>(); msgData.Id = currentEntryId; msgData.Token = token; msgData.InternalEndpoint = Common.StringFromEndpoint(ownEndpoint); var introduceMsg = MstSrvMsgFactory.CreateNew <MainMstSrvMsg>(msgData); foreach (var masterServer in MasterServerEndpoints.Values.ToArray()) { try { var lidgrenMsg = masterServer.CreateMessage((int)introduceMsg.GetMessageSize()); introduceMsg.Serialize(lidgrenMsg); masterServer.SendMessage(lidgrenMsg, introduceMsg.NetDeliveryMethod); masterServer.FlushSendQueue(); } catch (Exception e) { LunaLog.LogError($"[LMP]: Error connecting to server: {e}"); } } introduceMsg.Recycle(); }
public static void RequestServerList(NetClient masterServer) { var msgData = NetworkMain.CliMsgFactory.CreateNewMessageData <MsRequestServersMsgData>(); var requestMsg = MstSrvMsgFactory.CreateNew <MainMstSrvMsg>(msgData); var lidgrenMsg = masterServer.CreateMessage(requestMsg.GetMessageSize()); requestMsg.Serialize(lidgrenMsg); masterServer.SendMessage(lidgrenMsg, requestMsg.NetDeliveryMethod); masterServer.FlushSendQueue(); requestMsg.Recycle(); }