예제 #1
0
        /// <summary>
        /// This method sends a GameSpy server status acknowledgement back to
        /// a GameSpy client, informing the client that GameSpy services should
        /// be considered as available and operational.
        /// </summary>
        /// <param name="Address">Supplies the recipient address.</param>
        public void SendGameSpyCheckServerStatusResponse(IPEndPoint Address)
        {
            using (ExoBuildBuffer Builder = new ExoBuildBuffer())
            {
                Builder.WriteWORD(0xFDFE);
                Builder.WriteBYTE((byte)GameSpyCmd.CheckServerStatus);
                Builder.WriteDWORD(0);

                Logger.Log(LogLevel.Verbose, "NWMasterServer.SendGameSpyCheckServerStatusResponse(): Sending GameSpy aliveness acknowledgement to {0}.", Address);

                SendRawDataToGameSpyClient(Address, Builder);
            }
        }
예제 #2
0
        /// <summary>
        /// This method sends a server name request to a server.
        /// </summary>
        /// <param name="Address">Supplies the game server address.</param>
        public void SendServerNameRequest(IPEndPoint Address)
        {
            using (ExoBuildBuffer Builder = new ExoBuildBuffer())
            {
                Builder.WriteDWORD((uint)ConnAuthCmd.ServerNameRequest);
                Builder.WriteWORD((ushort)MasterServerPort);
                Builder.WriteBYTE(0); // Request correlation cookie.

                Logger.Log(LogLevel.Verbose, "NWMasterServer.SendServerNameRequest(): Sending server name request to {0}.", Address);

                SendRawDataToMstClientNATDuplicate(Address, Builder);
            }
        }