Beispiel #1
0
        void OnRequestLobbyList(RequestLobbyListPackage dp)
        {
            const char lobbySeperator      = '|';
            const char lobbyEntrySeperator = ';';

            string response = string.Empty;

            for (int i = 0; i < lobbies.Count; i++)
            {
                Lobby l = lobbies[i];

                string part = l.LobbyId.ToString();
                if (l.Members.Count != 0)
                {
                    part += lobbyEntrySeperator;
                }

                int j = 0;
                foreach (var v in l.Members)
                {
                    string address = ((IPEndPoint)v.Key.Client.RemoteEndPoint).Address.ToString();
                    part += address + lobbyEntrySeperator + v.Value.ToString();

                    if (j != l.Members.Count - 1)
                    {
                        part += lobbyEntrySeperator;
                    }

                    j++;
                }
                response += part;

                if (i != lobbies.Count - 1)
                {
                    response += lobbySeperator;
                }
            }

            ResponsePackage rp = new ResponsePackage();

            rp.ResponseId      = dp.Id;
            rp.ResponseMessage = response;
            Client.Write(dp.SenderTcpClient, rp);

            Console.WriteLine("Lobby list sent to " + dp.SenderRemoteIPEndpoint.ToString());
        }
Beispiel #2
0
        void OnRequestLobbyList(RequestLobbyListPackage dp)
        {
            const char lobbySeperator = '|';
            const char lobbyEntrySeperator = ';';

            string response = string.Empty;
            for(int i = 0; i < lobbies.Count; i++)
            {
                Lobby l = lobbies[i];

                string part = l.LobbyId.ToString();
                if (l.Members.Count != 0)
                    part += lobbyEntrySeperator;

                int j = 0;
                foreach (var v in l.Members)
                {
                    string address = ((IPEndPoint)v.Key.Client.RemoteEndPoint).Address.ToString();
                    part += address + lobbyEntrySeperator + v.Value.ToString();

                    if (j != l.Members.Count - 1)
                        part += lobbyEntrySeperator;

                    j++;
                }
                response += part;

                if (i != lobbies.Count - 1)
                    response += lobbySeperator;
            }

            ResponsePackage rp = new ResponsePackage();
            rp.ResponseId = dp.Id;
            rp.ResponseMessage = response;
            Client.Write(dp.SenderTcpClient, rp);

            Console.WriteLine("Lobby list sent to " + dp.SenderRemoteIPEndpoint.ToString());
        }