Exemplo n.º 1
0
        public ClientServerInformation ParseServerInformation(NetworkPackage package)
        {
            var result = new ClientServerInformation();

            var keyValuePairs = ParseAdditionalDataString(package.AdditionalData);

            result.ServerName     = keyValuePairs["name"];
            result.ServerEndPoint = new UdpIpEndPoint(keyValuePairs["address"], int.Parse(keyValuePairs["port"]));
            result.Capacity       = int.Parse(keyValuePairs["capacity"]);
            result.PlayerCount    = int.Parse(keyValuePairs["players"]);
            result.UsePassword    = bool.Parse(keyValuePairs["usepassword"]);

            return(result);
        }
Exemplo n.º 2
0
        public NetworkPackage CreatePlayerJoinRequest(ClientServerInformation server, PlayerIdentity player, String password = "")
        {
            var result = new NetworkPackage(NetworkPackageType.ClientPlayerJoinRequest);

            var data = new Dictionary <String, object>();

            data.Add("playeridentity", player.ToString());
            data.Add("playername", player.Name);

            // If a password is provided, add it SHA1 hashed to the package
            if (password != String.Empty)
            {
                data.Add("password", Plaform.HashString(password));
            }

            result.AdditionalData = result.CreateAdditionalDataString(data);
            return(result);
        }
Exemplo n.º 3
0
        public override bool HandlePackageResponse(NetworkPackage package)
        {
            try {
                if (base.HandlePackageResponse(package))
                {
                    return(true);
                }

                if (package.PackageType == NetworkPackageType.ServerDiscovertResponse)
                {
                    var clientServerInformation = ParseServerInformation(package);
                    AddDiscoveredServer(clientServerInformation);
                }
            }catch (Exception e) {
                throw new BonaVirtualGamePadException("Failed to handle package, se inner exception", e);
            }

            return(false);
        }
Exemplo n.º 4
0
        public NetworkPackage CreateNetworkDiscoveryResponse(UdpIpEndPoint listeningEndpoint, GamePadServer gamePadServer)
        {
            var result = new NetworkPackage(NetworkPackageType.ServerDiscovertResponse);

            var localIp       = UdpClient.GetLocalIp();
            var listeningPort = listeningEndpoint.Port;

            var usePassword = (gamePadServer.ServerPassword != String.Empty);

            var data = new Dictionary <String, object>();

            data.Add("address", localIp);
            data.Add("port", listeningEndpoint.Port);
            data.Add("name", gamePadServer.ServerName);
            data.Add("capacity", gamePadServer.GetPlayerCapacity());
            data.Add("players", gamePadServer.GetPlayerCount());
            data.Add("usepassword", usePassword);
            result.AdditionalData = result.CreateAdditionalDataString(data);

            return(result);
        }
Exemplo n.º 5
0
        public NetworkPackage CreateNetworkDiscoveryRequest()
        {
            var result = new NetworkPackage(NetworkPackageType.ClientDiscoveryRequest);

            return(result);
        }
Exemplo n.º 6
0
        public void SendPackage(NetworkPackage package, UdpIpEndPoint targetEndpoint)
        {
            var dataToSend = package.ToByteArray();

            UdpClient.SendPackage(dataToSend, dataToSend.Length, targetEndpoint);
        }
Exemplo n.º 7
0
 public virtual bool HandlePackageResponse(NetworkPackage package)
 {
     return(false);
 }