コード例 #1
0
ファイル: Server.cs プロジェクト: Evilgott/PADI-grupo15
        Server(int port)
        {
            _port = port;
            _channel = new TcpChannel(_port);
            ChannelServices.RegisterChannel(_channel, true);

               _rServer = new RemoteServer(port);

            try
            {
                RemotingServices.Marshal(_rServer, "Server", typeof(RemoteServer));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
コード例 #2
0
ファイル: GameEndPoint.cs プロジェクト: sasalicat/SummitArena
    public void conncetRemoteEndPoint(string ip, int port)
    {
        try
        {
            IPAddress sip;
            if (!IPAddress.TryParse(ip, out sip))
            {
                ConnectClient.main.requst_answerConnectRemote(2);
                return;
            }

            IPEndPoint tragetEP     = new IPEndPoint(sip, port);
            IPEndPoint localEP      = new IPEndPoint(IPAddress.Any, gamePort);
            Socket     serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            serverSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
            serverSocket.Bind(localEP);
            serverSocket.Connect(tragetEP);
            if (BeServer)
            {
                serverSocket.Shutdown(SocketShutdown.Both);
                serverSocket.Close();
                //Thread temp = new Thread(tempReceive);
                //temp.IsBackground = true;
                //temp.Start(serverSocket);
            }
            else
            {
                Debug.Log(">>>connect server 連接ip:" + ip + " port:" + port);
                server  = new RemoteServer(serverSocket, this);
                sthread = new Thread(server.doit);
                sthread.IsBackground = true;
                sthread.Start();
            }
            textShow.Log(">>>動作成功");
            ConnectClient.main.requst_answerConnectRemote(1);
        }
        catch (Exception e)
        {
            ConnectClient.main.requst_answerConnectRemote(0);
            textShow.Log(">>>gameEndPoint連接遠端失敗\nip:" + ip + "port:" + port + " 錯誤信息:\n" + e);
        }
    }
コード例 #3
0
        public void WithBaseAddressShouldChangedDefaultAddress()
        {
            Assert.IsFalse(RemoteServer.GlobalIsConfigured);
            Assert.AreEqual(MyWebApi.DefaultHost, MyWebApi.BaseAddress.OriginalString);

            string address = "http://mytestedasp.net";

            MyWebApi
            .IsUsingDefaultHttpConfiguration(TestObjectFactory.GetCustomInlineConstraintResolver())
            .WithBaseAddress(address);

            Assert.AreEqual(address, MyWebApi.BaseAddress.OriginalString);
            Assert.IsTrue(RemoteServer.GlobalIsConfigured);

            MyWebApi.IsUsing(TestObjectFactory.GetHttpConfigurationWithRoutes());

            Assert.AreEqual(MyWebApi.DefaultHost, MyWebApi.BaseAddress.OriginalString);

            RemoteServer.DisposeGlobal();
        }
コード例 #4
0
        protected void Application_Start(object sender, EventArgs e)
        {
            // 开启Web Api
            GlobalConfiguration.Configure(WebApiConfig.Register);

            // 初始化log4net配置
            XmlConfigurator.Configure();

            // 记录系统启动日志
            var log = LogHelper.GetLogger(this.GetType());

            log.Info("Application start successfully!");

            var enableRemoteEdit = ConfigurationManager.AppSettings["EnableRemoteEdit"] == "true";

            if (enableRemoteEdit)
            {
                server = new RemoteServer();
                server.Start();
            }
        }
コード例 #5
0
        private bool disposedValue;         // To detect redundant calls

        private void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    try {
                        _provider?.Stop();
                    }
#pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body
                    catch {
                        // Nothing to do here.
                    }
#pragma warning restore RECS0022 // A catch clause that catches System.Exception and has an empty body
                }

                _provider = null;

                disposedValue = true;
            }
        }
コード例 #6
0
        static RemoteServer ConnectServerByConsole()
        {
            Console.Write("Server: ");
            string host = Console.ReadLine();

            Console.WriteLine();
            Console.Write("Port: ");
            ushort port = Convert.ToUInt16(Console.ReadLine());

            Console.WriteLine();
            Console.Write("Password: ");
            string password = Console.ReadLine();

            Console.WriteLine();

            RemoteServer server = new RemoteServer(host, port, password);

            server.Start();

            return(server);
        }
コード例 #7
0
ファイル: Client.cs プロジェクト: GraionDilach/freeserf.net
        public bool JoinServer(string name, IPAddress ip)
        {
            // if already connected to another server, first disconnect
            if (server != null || client != null)
            {
                Disconnect();
            }

            try
            {
                client = new TcpClient(new IPEndPoint(Ip, 0));

                if (IPAddress.IsLoopback(ip))
                {
                    client.Connect(Host.GetLocalIpAddress(), Global.NetworkPort);
                }
                else
                {
                    client.Connect(ip, Global.NetworkPort);
                }

                server = new RemoteServer(name, ip, client);
                server.DataReceived += Server_DataReceived;
                lastServerHeartbeat  = DateTime.UtcNow;

                connectionObserver = new ConnectionObserver(() => lastServerHeartbeat, 200, disconnectToken.Token);

                connectionObserver.DataRefreshNeeded += ConnectionObserver_DataRefreshNeeded;
                connectionObserver.ConnectionLost    += ConnectionObserver_ConnectionLost;

                connectionObserver.Run();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
コード例 #8
0
        static void Main(string[] args)
        {
            Console.WriteLine("WHIP test suite");

            try
            {
                RemoteServer server = ConnectServerByConsole();

                /*IPEndPoint listenEndPoint = new IPEndPoint(IPAddress.Any, 32702);
                 * _meshSignalSocket.Bind(listenEndPoint);
                 *
                 * _meshSignalSocket.BeginReceiveFrom(_signal, 0, 128, SocketFlags.None, ref _ep, new AsyncCallback(Program.ProcessMeshSignal), new object());
                 */
                OnConnection(server);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error connecting to server: " + e.Message);
            }

            Console.ReadLine();
        }
コード例 #9
0
ファイル: Dimlibs.cs プロジェクト: Dradonhunter11/DimLibs
        private void ServerLoop(object context)
        {
            TcpListener listener       = context as TcpListener;
            TcpClient   client         = listener.AcceptTcpClient();
            TcpSocket   terrariaSocket = new TcpSocket(client);
            ISocket     socket         = terrariaSocket as ISocket;

            Console.WriteLine("server loop started");

            RemoteServer server = new RemoteServer();


            server.Socket = terrariaSocket;
            while (false)
            {
                try
                {
                    if (socket.IsConnected())
                    {
                        if (socket.IsDataAvailable())
                        {
                            client.GetStream().Flush();
                            byte[] data = new byte[ushort.MaxValue];
                            using (MemoryStream stream = new MemoryStream(data))
                            {
                                BinaryWriter writer = new BinaryWriter(stream);
                                socket.AsyncSend(writer.BaseStream.ReadAllBytes(), 0, 256, new SocketSendCallback(Netplay.Connection.ClientWriteCallBack), null);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
            listener.Stop();
            Console.WriteLine("server loop stopped");
        }
コード例 #10
0
ファイル: Helpr.cs プロジェクト: oskopek/irsee.net
        public static void Main2(string[] args)
        {
            Console.WriteLine("Hello World!");
            var helpr = new User("helpr-bot", "HelpR", "HelpR", nickServUsername: "******");
            var freenodeConfiguration = new ServerConfiguration(helpr, "leguin.freenode.net", port: 6697, useSSL: true);
            var freenode = new RemoteServer(freenodeConfiguration);
            var client   = new IrcClient.IrcClient(freenode);

            freenode.IncomingMessageEvent += (_, x) => Console.WriteLine(x.RawMessage);
            freenode.ConnectAsync().Wait();
            Console.WriteLine("Connect finished");
            Thread.Sleep(1000);
            freenode.SendMessageAsync(new SimpleMessage($"PRIVMSG {helpr.Nickname} :Test Message 123")).Wait();
            Console.WriteLine("Send message finished");
            for (int i = 0; i < 20; i++)
            {
                Console.WriteLine("Sleep...");
                Thread.Sleep(1000);
            }
            freenode.Disconnect();
            Console.WriteLine("Disconnected");
            Console.ReadLine();
        }
コード例 #11
0
        static void Main(string[] args)
        {
            RemoteServer rso = null;
            string       request;
            string       response;

            try
            {
                rso     = new RemoteServer();
                request = "{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"subtract\" , \"params\": {\"subtrahend\": 23.4, \"minuend\": 42.8}}";
                rso.Connect("jsonrpcservertest", null, null);
                response = rso.JsonRpcRequest(request);
                Console.WriteLine("#### Response ####");
                Console.WriteLine(response);
            }
            finally
            {
                if (rso != null)
                {
                    rso.Dispose();
                }
            }
        }
コード例 #12
0
ファイル: Client.cs プロジェクト: bluetsys/freeserf.net
        private void HandleRequest(RequestData request)
        {
            switch (request.Request)
            {
            case Request.Disconnect:
                // server closed or kicked player
                client?.Close();
                server?.Close();
                client = null;
                server = null;
                Disconnected?.Invoke(this, EventArgs.Empty);
                break;

            case Request.Heartbeat:
                // TODO
                break;

            default:
                // all other requests can not be send to a client
                throw new ExceptionFreeserf(ErrorSystemType.Network, $"Request {request.ToString()} can not be send to client.");
            }

            RespondToRequest(request);
        }
コード例 #13
0
ファイル: ServerConfig.cs プロジェクト: waodng/PortProxyV3
        public string CheckForConfigurationError()
        {
            if (RemoteServer.IsNullOrEmpty())
            {
                return("必须指定上游服务器地址");
            }

            if (Port < 1025 || Port >= 65535)
            {
                return("请指定有效的本地端口范围(1025~65534)");
            }

            if (RemoteServerPort < 1025 || RemoteServerPort >= 65535)
            {
                return("请指定有效的本地端口范围(1025~65534)");
            }

            if (!LocalServer.IsNullOrEmpty() && !Regex.IsMatch(LocalServer, @"^(\*|[a-z\d\.-_]+):\d+$", RegexOptions.IgnoreCase))
            {
                return("请输入有效的状态服务器前缀(如:127.0.0.1:7788)");
            }

            return(null);
        }
コード例 #14
0
        static void Main(string[] args)
        {
            Console.Title = "SharpViewService - Remote Console";
            RemoteServer server1 = null;

            if (args.Length != 0)
            {
                if (args[0] == "-window")
                {
                    Console.WriteLine("SharpViewService Window [0.1;2016]");
                    Console.WriteLine("Copyright SharpTech© 2016 ");
                    Console.WriteLine("");
                    Console.WriteLine("Type -help for all the available commands");
                    Console.WriteLine("");

                    for ( ; true;)
                    {
                        Console.WriteLine("");
                        Console.Write("SharpService: ");
                        var entry = Console.ReadLine();
                        Console.Title = "SharpViewService - Remote Console" + entry;
                        if (entry == "-remoteSocket")
                        {
                            Console.WriteLine("Setting up server socket, for all expected IPAddress range.. 255.255.255.255");
                            var addresses = NetworkLookup.GetAddresses("");
                            Console.WriteLine("Creating NetworkState found in (NetworkState;SharpViewCore.dll)\n");
                            Console.WriteLine("");
                            var networkState = NetworkState.Get();
                            Console.WriteLine("Checking internet connection...");
                            if (networkState.IsConnected)
                            {
                                Console.WriteLine("Internet connect active!\n\n");
                            }
                            else
                            {
                                Console.BackgroundColor = ConsoleColor.Red;
                                Console.ForegroundColor = ConsoleColor.Black;
                                Console.WriteLine("Internet connection is not available");
                                Console.BackgroundColor = ConsoleColor.Black;
                                Console.ForegroundColor = ConsoleColor.Gray;
                                for (int i = 0; i < 30; i++)
                                {
                                    var networkState1 = NetworkState.Get();
                                    if (networkState.IsConnected == false)
                                    {
                                        Console.WriteLine("Retrying... " + i);
                                    }
                                    else
                                    {
                                        Console.WriteLine("Internet connection is not available");
                                        break;
                                    }
                                }
                                if (!networkState.IsConnected)
                                {
                                    Console.WriteLine("To create a socket based server, you will need a active internet connection...");
                                }
                                Console.ReadLine();
                            }
                            Console.WriteLine("Testing all active addresses found\n");
                            if (networkState.IsConnected)
                            {
                                for (int i = 0; i < addresses.Length; i++)
                                {
                                    NetworkAddress address = addresses[i];
                                    if (address.Address.Contains("."))
                                    {
                                        try
                                        {
                                            System.Threading.Thread.Sleep(5);
                                            RemoteServerSocket socket = new RemoteServerSocket();
                                            socket.Bind(address.Address, 8080);
                                            socket.Connect(address.Address, 8080);
                                            string str = "Testing Connection: " + address.Address;
                                            NetworkState.SendPingRequest(address.Address, 3000);
                                            Console.BackgroundColor = ConsoleColor.Green;
                                            Console.ForegroundColor = ConsoleColor.White;
                                            if (address.Address.Length != 15)
                                            {
                                                str += "  - Active";
                                            }
                                            else
                                            {
                                                str += " - Active.";
                                            }
                                            Console.BackgroundColor = ConsoleColor.Black;
                                            Console.ForegroundColor = ConsoleColor.Gray;
                                            Console.WriteLine(str);
                                        }
                                        catch (Exception ex)
                                        {
                                            Console.BackgroundColor = ConsoleColor.Red;
                                            Console.ForegroundColor = ConsoleColor.Black;
                                            Console.WriteLine(ex.Message);
                                            Console.BackgroundColor = ConsoleColor.Black;
                                            Console.ForegroundColor = ConsoleColor.White;
                                        }
                                    }
                                }
                                Console.WriteLine("\n\nRemote Socket created");
                                Console.WriteLine("");
                            }
                        }
                        else if (entry == "-remoteDesktop")
                        {
                            try
                            {
                                Console.WriteLine("");
                                Console.WriteLine("Setting up remote desktop server...");
                                Console.WriteLine("");
                                server1 = new RemoteServer();
                                var pass = RandomString(16);
                                server1.Create(pass);
                                Console.WriteLine("Connection ID: " + server1.DesktopInvitation.ConnectionString);
                                Console.WriteLine("Password: "******"Remote desktop server could not be established\n\nReason: A remote server is already active.\nMessage: " + ex.Message);
                            }
                        }
                        else if (entry == "-exit")
                        {
                            return;
                        }
                        else if (entry == "-clear")
                        {
                            Console.Clear();
                            Main(args);
                            return;
                        }
                        else if (entry == "-isAvailable")
                        {
                            Console.WriteLine(NetworkState.Get().IsConnected == true ? "There is a internet connection\n" : "There isn't a active internet connection\n");
                        }
                        else if (entry == "-ping")
                        {
                            Console.WriteLine("Enter a hostname /or domain to send a package to.\n");
                            Console.Write("HostnameOrDomain: ");
                            var entry1 = Console.ReadLine();

                            if (entry1 != null && entry1.Contains("."))
                            {
                                if (NetworkState.SendPingRequest(entry1, 300) == NetworkPingResult.Success)
                                {
                                    Console.WriteLine("Package Send; Reply returned success\n");
                                }
                                else
                                {
                                    Console.WriteLine("Package could not be sent to the following:\n" + entry1 + "\n");
                                }
                            }
                            else
                            {
                                Console.WriteLine("AddressOrHostName does not apear to fall in the expecting format (example: 255.255.255.255 Or exampledomain.com)");
                            }
                        }
                        else if (entry == "-addresses")
                        {
                            foreach (NetworkAddress address in NetworkLookup.GetAddresses(""))
                            {
                                Console.WriteLine(address.Address);
                            }
                            Console.WriteLine("\n");
                        }
                        else if (entry == "-family")
                        {
                            Console.WriteLine(NetworkState.Get().NetworkAddressFamily.ToString() + "\n");
                        }
                        else if (entry == "-help")
                        {
                            Console.WriteLine("\nServer Commands:\n\n-remoteSocket  = A remote server thats binded on a ipaddress.\n-remoteDesktop = A remote server that is binded on a custom ID, and password\n\nNetwork Commands:\n\n-isAvailable = See if there is any network/internet connection available\n-ping        = Ping a domain name /or host\n-addresses   = Get all active IPAddress connected to this session,\n-family      = Get the address family of my public IPAddress\n-devices     = Get all the available network devices.\n-ip          = Returns your ipaddress.\n\nStandard Commands:\n\n-exit       = Close this window.\n-clear      = Clears the console window text.\n\nSharpView Commands:\n\n-tools = Show the administator tools.");
                            Console.WriteLine("");
                        }
                        else if (entry == "-tools")
                        {
                            Process.Start("SharpView.exe", "-t");
                        }
                        else if (entry == "-devices")
                        {
                            var networkDevices = (INetworkDevice[])NetworkState.Get().Devices;
                            foreach (INetworkDevice device in networkDevices)
                            {
                                Console.WriteLine("");
                                Console.WriteLine("-----------------------------------------------");
                                Console.WriteLine("Name:    " + device.Name + "");
                                if (device.IsConnected)
                                {
                                    Console.WriteLine("Enabled: Yes");
                                }
                                else
                                {
                                    Console.WriteLine("Enabled: No");
                                }
                                Console.WriteLine("IP:    " + device.IPAddresss);
                                Console.WriteLine("-----------------------------------------------");
                            }
                        }
                        else if (entry == "-ip")
                        {
                            Console.WriteLine(NetworkState.Get().NetworkAddress + "\n");
                        }
                        else if (string.IsNullOrWhiteSpace(entry))
                        {
                        }
                        else
                        {
                            Console.WriteLine("\nUnknown Command");
                        }
                        Console.Title = "SharpViewService - Remote Console";
                    }
                }
                else if (args[0] == "-remote")
                {
                    Console.Title = "SharpViewService - Remote Server using (IRemoteServer4, IRemoteServerSocket, NetworkState, NetworkAddress); SharpViewCore.dll";
                    if (args[1] == "-rsk")
                    {
                        Console.BackgroundColor = ConsoleColor.White;
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine("Creating a new server using RemoteServer (IRemoteServer4, IRemoteServerSocket) Method; SharpViewCore.dll");
                        Console.BackgroundColor = ConsoleColor.Black;
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine("");
                        Console.BackgroundColor = ConsoleColor.White;
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine("Setting up server socket, for all expected IPAddress range.. 255.255.255.255");
                        var addresses = NetworkLookup.GetAddresses("");
                        Console.BackgroundColor = ConsoleColor.Black;
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine("Creating NetworkState found in (NetworkState;SharpViewCore.dll)\n");
                        Console.WriteLine("");
                        var networkState = NetworkState.Get();
                        Console.WriteLine("Checking internet connection...");
                        if (networkState.IsConnected)
                        {
                            Console.WriteLine("Internet connect active!\n\n");
                        }
                        else
                        {
                            Console.BackgroundColor = ConsoleColor.Red;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.WriteLine("Internet connection is not available");
                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.Gray;
                            for (int i = 0; i < 30; i++)
                            {
                                var networkState1 = NetworkState.Get();
                                if (networkState.IsConnected == false)
                                {
                                    Console.WriteLine("Retrying... " + i);
                                }
                                else
                                {
                                    Console.WriteLine("Internet connection is not available");
                                    break;
                                }
                            }
                            if (!networkState.IsConnected)
                            {
                                Console.WriteLine("To create a socket based server, you will need a active internet connection...");
                            }
                            Console.WriteLine("To create a socket based server, you will need a active internet connection...");
                            Console.ReadLine();
                        }
                        Console.WriteLine("Testing all active addresses found\n");
                        if (networkState.IsConnected)
                        {
                            for (int i = 0; i < addresses.Length; i++)
                            {
                                NetworkAddress address = addresses[i];
                                if (address.Address.Contains("."))
                                {
                                    try
                                    {
                                        System.Threading.Thread.Sleep(5);
                                        Console.WriteLine("Testing Connection: " + address.Address);
                                        RemoteServerSocket socket = new RemoteServerSocket();
                                        Console.BackgroundColor = ConsoleColor.Black;
                                        Console.ForegroundColor = ConsoleColor.White;
                                        socket.Bind(address.Address, 8080);
                                        socket.Connect(address.Address, 8080);
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.BackgroundColor = ConsoleColor.Red;
                                        Console.ForegroundColor = ConsoleColor.Black;
                                        Console.WriteLine(ex.Message);
                                        Console.BackgroundColor = ConsoleColor.Black;
                                        Console.ForegroundColor = ConsoleColor.White;
                                    }
                                }
                            }
                            try
                            {
                                Console.WriteLine("");
                                Console.BackgroundColor = ConsoleColor.White;
                                Console.ForegroundColor = ConsoleColor.Black;
                                Console.WriteLine("Setting up remote desktop server...");
                                Console.BackgroundColor = ConsoleColor.Black;
                                Console.ForegroundColor = ConsoleColor.White;
                                Console.WriteLine("");
                                RemoteServer server = new RemoteServer();
                                server.Create(args[2]);
                                Console.WriteLine("Connection ID: " + server.DesktopInvitation.ConnectionString);
                                Console.WriteLine("Password: "******"Group:" + server.DesktopInvitation.GroupName);
                                Console.ReadLine();
                            }
                            catch
                            {
                                Console.BackgroundColor = ConsoleColor.Black;
                                Console.ForegroundColor = ConsoleColor.White;
                                Console.WriteLine("Remote desktop server could not be established\n\nReason: A remote server is already active.");
                                Console.ReadLine();
                            }
                        }
                    }
                    else
                    {
                        Console.Title = "SharpViewService - Remote Server using (IRemoteServer4); SharpViewCore.dll";
                        try
                        {
                            Console.BackgroundColor = ConsoleColor.White;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.WriteLine("Creating a new server using RemoteServer (IRemoteServer4) Method; SharpViewCore.dll");
                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.WriteLine("");
                            Console.BackgroundColor = ConsoleColor.White;
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.WriteLine("Setting up remote desktop server...");
                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.WriteLine("");
                            RemoteServer server = new RemoteServer();
                            server.Create(args[0]);
                            Console.WriteLine("Connection ID: " + server.DesktopInvitation.ConnectionString);
                            Console.WriteLine("Password: "******"Group:" + server.DesktopInvitation.GroupName);
                            Console.ReadLine();
                        }
                        catch
                        {
                            Console.BackgroundColor = ConsoleColor.Black;
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.WriteLine("Remote desktop server could not be established\n\nReason: A remote server is already active.");
                            Console.ReadLine();
                        }
                    }
                }
                else
                {
                    return;
                }
            }
            else
            {
                MessageBox.Show("Invalid arguments\n\n-window - Open a clear service window\n-remote - Open the remote portion of this service.\n-remote -rsk - To Open the remote socket portion of the console.");
                return;
            }
        }
コード例 #15
0
ファイル: ImWrapper.cs プロジェクト: dr250167/SmartShelf
 public ImWrapper()
 {
     _remoteServer = new RemoteServer("amir", "123456", "https://daxdemo.swenglabs.ncr.com:8443/StoreWebServices");
 }
コード例 #16
0
 public void SetUpRemoteServer()
 {
     _remoteServer = new(BrowserType.Name);
 }
コード例 #17
0
ファイル: LoginBP.cs プロジェクト: SHKCB/RF
        /// <summary>
        /// 退出系统
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="remote"></param>
        public UserViewEntity LoginOut(UserViewEntity entity, RemoteServer remote)
        {
            entity = remote.Commond <UserViewEntity>(entity, "9999");

            return(entity);
        }
コード例 #18
0
    public void Init(RemoteServer server)
    {
        this.server = server;

        txtServerName.text = server.servername;
    }
コード例 #19
0
        public void Start()
        {
            if (!IsActive)
            {
                try
                {
                    InstanceManager.Load();

                    ServerConfiguration instance = InstanceManager.Instances[_instanceName];
                    if (instance == null)
                    {
                        // Establish a default configuration
                        instance = ServerConfiguration.DefaultInstance(_instanceName);
                        InstanceManager.Instances.Add(instance);
                        InstanceManager.Save();
                    }

                    _server = new Server();
                    instance.ApplyTo(_server);
                    _remoteServer = new RemoteServer(_server);
                    _nativeServer = new NativeServer(_server);
                    _server.Start();
                    try
                    {
                        _server.LogMessage("Creating WCF Service...");
                        _service = new DataphorService(_remoteServer);

                        _server.LogMessage("Creating Native CLI Service...");
                        _nativeService = new NativeCLIService(_nativeServer);

                        _server.LogMessage("Configuring Service Host...");
                        _serviceHost = instance.UseServiceConfiguration ? new CustomServiceHost(_service) : new ServiceHost(_service);

                        if (!instance.UseServiceConfiguration)
                        {
                            _serviceHost.AddServiceEndpoint
                            (
                                typeof(IDataphorService),
                                DataphorServiceUtility.GetBinding(),
                                DataphorServiceUtility.BuildInstanceURI(Environment.MachineName, instance.PortNumber, instance.Name)
                            );
                        }

                        _server.LogMessage("Opening Service Host...");
                        _serviceHost.Open();

                        _server.LogMessage("Configuring Native CLI Service Host...");
                        _nativeServiceHost = instance.UseServiceConfiguration ? new CustomServiceHost(_nativeService) : new ServiceHost(_nativeService);

                        if (!instance.UseServiceConfiguration)
                        {
                            _nativeServiceHost.AddServiceEndpoint
                            (
                                typeof(INativeCLIService),
                                DataphorServiceUtility.GetBinding(),
                                DataphorServiceUtility.BuildNativeInstanceURI(Environment.MachineName, instance.PortNumber, instance.Name)
                            );
                        }

                        _server.LogMessage("Opening Native CLI Service Host...");
                        _nativeServiceHost.Open();

                        // Start the listener
                        if (instance.ShouldListen)
                        {
                            _server.LogMessage("Starting Listener Service...");
                            _listenerServiceHost = new ListenerServiceHost(instance.OverrideListenerPortNumber, instance.RequireSecureListenerConnection, instance.AllowSilverlightClients, instance.UseServiceConfiguration);
                        }
                    }
                    catch (Exception exception)
                    {
                        _server.LogError(exception);
                        throw;
                    }
                }
                catch
                {
                    Stop();
                    throw;
                }
            }
        }
コード例 #20
0
        /// <summary>
        /// Сихронизация задания
        /// </summary>
        /// <param name="task">Задания</param>
        /// <param name="serv">Удаленный сервер</param>
        /// <param name="WorkNoteNotation">Текущее задание в WorkNote</param>
        /// <param name="NameAndValue">Колекция для ответа в журнал</param>
        /// <param name="IsOk">Выполнено задание или нет</param>
        private static void Sync(Task task, RemoteServer serv, Notation WorkNoteNotation, out List <More> NameAndValue, ref bool IsOk)
        {
            #region Ошибка подключения
            if (!serv.IsConnected)
            {
                NameAndValue = new List <More>()
                {
                    new More("Состояние", $"Ошибка подключения к {task.TypeSunc.ToString()}")
                };
                return;
            }
            #endregion

            try
            {
                #region Получаем список папок в которых были ошибки при синхронизации
                string PathSyncToErrorLocalFolder = $"{Folders.Sync}/tk-{task.Id}.ErrorLocalFolders.json";
                var    NewListErrorLocalFolders   = new List <string>(); // Новый список папок с ошибкой синхронизации
                var    oldListErrorLocalFolders   = new List <string>(); // Текущий список папок с ошибкой синхронизации
                if (File.Exists(PathSyncToErrorLocalFolder))
                {
                    oldListErrorLocalFolders = JsonConvert.DeserializeObject <List <string> >(File.ReadAllText(PathSyncToErrorLocalFolder));
                }
                #endregion

                #region Переменные
                // Список новых папок
                var ListNewLocalFolders = new List <string>();

                // Время старта задания
                var TimeStartTask = DateTime.Now;

                // Количиство созданных папок и загруженых файлов
                int CountUploadToFilesOK = 0, CountUploadToFilesAll = 0, CountCreateToDirectoryOk = 0, CountCreateToDirectoryAll = 0;

                // Количиство провереных обьектов - (папок/файлов)
                int CountToCheckedObject = 0;

                // Общий размер переданых файлов в byte
                long CountUploadToBytes = 0;

                // Отчет созданных папок
                string       ReportNameToCreateFolders = $"tk-{task.Id}_{DateTime.Now.ToString("dd-MM-yyy_HH-mm")}-{Generate.Passwd(6)}.folders.txt";
                StreamWriter ReportToCreateFolders     = new StreamWriter($"{Folders.ReportSync}/{ReportNameToCreateFolders}", false, Encoding.UTF8);

                // Отчет загруженных файлов
                string       ReportNameToUploadFiles = $"tk-{task.Id}_{DateTime.Now.ToString("dd-MM-yyy_HH-mm")}-{Generate.Passwd(6)}.files.txt";
                StreamWriter ReportToUploadFiles     = new StreamWriter($"{Folders.ReportSync}/{ReportNameToUploadFiles}", false, Encoding.UTF8);
                #endregion

                // Получаем список всех папок
                foreach (var LocalFolder in SearchDirectory.Get(task.Whence))
                {
                    CountToCheckedObject++;

                    // Если папка в списке игнорируемых папок
                    if (task.IgnoreFileOrFolders.Exists(i => Regex.IsMatch(LocalFolder, i.Patch.Replace("\\", "/"), RegexOptions.IgnoreCase)))
                    {
                        continue;
                    }

                    // Проверяем папку, нужно ее синхронизировать или нет
                    if (CacheLastWriteTimeToFiles(LocalFolder, task.CacheSync, ref CountToCheckedObject) ||          // Если дата изменения любого файла внутри папки LocalFolder выше чем CacheSync
                        Directory.GetCreationTime(LocalFolder) > task.CacheSync ||                                   // Если дата создания папки выше CacheSync
                        Directory.GetLastWriteTime(LocalFolder) > task.CacheSync ||                                  // Если дата изменения в папке выше CacheSync
                        ListNewLocalFolders.Exists(i => LocalFolder.Contains(i)) ||                                  // Если эта папка является новой, нужно сихронизировать все включая все подпапки в ней
                        oldListErrorLocalFolders.Exists(i => LocalFolder == i))                                      // Список папок в котрых в прошлый раз была ошибка при синхронизации
                    {
                        #region Переменные
                        // Количиство потоков
                        int ActiveConnections = 1;
                        switch (task.TypeSunc)
                        {
                        case TypeSunc.OneDrive:
                            ActiveConnections = 10;
                            break;

                        case TypeSunc.SFTP:
                            ActiveConnections = task.FTP.ActiveConnections;
                            break;
                        }

                        // Расширения файлов и папок
                        string SyncRemoveFileAddExtension = ".remove";
                        string SyncRemoveFoldersExtension = $".SyncRemove.{DateTime.Now.ToBinary()}";
                        #endregion

                        #region Локальный метод - "GetRemoteFolder"
                        string GetRemoteFolder()
                        {
                            // Удаленный каталог
                            string where = Tools.ConvertPatchToUnix(task.Where);

                            // Локальный каталог
                            string whence = Tools.ConvertPatchToUnix(task.Whence);

                            // Результат
                            return(LocalFolder.Replace(whence, where));
                        }
                        #endregion

                        // Папка на удаленном сервере Linux
                        string RemoteFolder = GetRemoteFolder();

                        // Создаем папку на удаленом сервере
                        serv.CreateDirectory(RemoteFolder, NotReport: true);

                        // Список файлов и папок
                        var ListRemoteServer         = serv.ListDirectoryAndFiles(RemoteFolder);
                        var ListLocalDirectoryToName = Directory.GetDirectories(LocalFolder, "*", SearchOption.TopDirectoryOnly).Select(i => Path.GetFileName(i)).ToList();
                        var ListLocalFilesToName     = Directory.GetFiles(LocalFolder, "*", SearchOption.TopDirectoryOnly).
                                                       Where(dir => !task.IgnoreFileOrFolders.Exists(i => Regex.IsMatch(dir, i.Patch, RegexOptions.IgnoreCase))).
                                                       Select(dir => Path.GetFileName(dir)).ToList();

                        // Модель Tools
                        ToolsModel md = new ToolsModel()
                        {
                            serv = serv,
                            ActiveConnections        = ActiveConnections,
                            LocalFolder              = LocalFolder,
                            RemoteFolder             = RemoteFolder,
                            NewListErrorLocalFolders = NewListErrorLocalFolders
                        };

                        // Переименовывем папки в 'SyncRemoveFoldersExtension' на удаленом сервере - (если их нету на локальном)
                        Tools.RenameToRemoveDirectory(md, ListRemoteServer.Directory, SyncRemoveFoldersExtension);

                        // Переименовывем файлы в 'SyncRemoveFileAddExtension' на удаленом сервере - (если их нету на локальном)
                        Tools.RenameToRemoveFiles(md, ListRemoteServer.Files, SyncRemoveFileAddExtension);

                        // Создаем папки на удаленом сервере - (папки есть на локальном но нету на удаленом сервере)
                        foreach (string createFolder in Tools.CreateToDirectory(md, ListRemoteServer.Directory, ListLocalDirectoryToName, ref CountCreateToDirectoryOk, ref CountCreateToDirectoryAll, ListNewLocalFolders))
                        {
                            // Сохраняем список созданных папок
                            ReportToCreateFolders.WriteLine(createFolder);
                        }

                        // Удаляем файлы которые не до конца загружены
                        Tools.DeleteFilesToErrorUpload(md, ref ListRemoteServer.Files, SyncRemoveFileAddExtension);

                        // Загружаем файлы на удаленный сервер - (если файла нету на сервере)
                        foreach (string uploadFile in Tools.UploadToFiles(md, ListRemoteServer.Files, ListLocalFilesToName, task.EncryptionAES, task.PasswdAES, ref CountUploadToFilesOK, ref CountUploadToFilesAll, ref CountUploadToBytes))
                        {
                            // Сохраняем список загруженных файлов
                            ReportToUploadFiles.WriteLine(uploadFile);
                        }

                        #region Очистка старых бекапов
                        if (task.CountActiveBackup >= 1)
                        {
                            if (task.CountActiveBackup == 1)
                            {
                                // Удаляем все папки и файлы с пометкй "SyncRemoveFoldersExtension или SyncRemoveFoldersExtension"
                                Tools.DeleteFilesOrDirectoryToRemove(md);
                            }

                            // Удаляем старые бекапы
                            Tools.DeleteFilesToActiveBackup(md, task.CountActiveBackup);
                        }

                        // Удаляем старые по времени бекапы
                        if (task.CountActiveDayBackup > 0)
                        {
                            Tools.DeleteFilesToActiveDayBackup(md, task.CountActiveDayBackup);
                        }
                        #endregion

                        #region Обновляем WorkNote
                        WorkNoteNotation.More = new List <More>
                        {
                            new More("Состояние", $"Выполняется {GetToWorkTime("")}"),
                            new More("Проверено объектов", $"{CountToCheckedObject:N0}")
                        };

                        if (CountUploadToFilesOK > 0)
                        {
                            WorkNoteNotation.More.Add(new More("Передано данных", ToSize(CountUploadToBytes)));
                            WorkNoteNotation.More.Add(new More("Загружено файлов", $"{CountUploadToFilesOK:N0}"));
                        }

                        if (CountCreateToDirectoryOk > 0)
                        {
                            WorkNoteNotation.More.Add(new More("Создано папок", $"{CountCreateToDirectoryOk:N0}"));
                        }
                        #endregion
                    }
                }

                // Закрываем потоки
                ReportToCreateFolders.Dispose();
                ReportToUploadFiles.Dispose();

                // Сохраняем новый список папок с ошибками, вместо старого
                File.WriteAllText(PathSyncToErrorLocalFolder, JsonConvert.SerializeObject(NewListErrorLocalFolders));

                #region Локальный метод GetToWorkTime
                string GetToWorkTime(string arg)
                {
                    var WorkTime = (DateTime.Now - TimeStartTask);

                    if (WorkTime.TotalSeconds <= 60)
                    {
                        return("");
                    }

                    if (WorkTime.TotalMinutes <= 60)
                    {
                        return($"{arg}{(int)WorkTime.TotalMinutes} {EndOfText.get("минуту", "минуты", "минут", (int)WorkTime.TotalMinutes)}");
                    }

                    return($"{arg}{(int)WorkTime.TotalHours} {EndOfText.get("час", "часа", "часов", (int)WorkTime.TotalHours)}");
                }
                #endregion

                #region Локальный метод ToSize
                string ToSize(double bytes)
                {
                    string[] Suffix = { "Byte", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };
                    int      index  = 0;

                    while (bytes >= 1024)
                    {
                        bytes /= 1024;
                        index++;
                    }

                    return($"{bytes:N3} {Suffix[index]}");
                }
                #endregion

                #region Выполнено
                NameAndValue = new List <More>()
                {
                    new More("Состояние", $"Выполнено {GetToWorkTime("за ")}"),
                    new More("Проверено объектов", $"{CountToCheckedObject:N0}")
                };

                if (CountCreateToDirectoryAll > 0)
                {
                    NameAndValue.Add(new More("Создано папок", $"<a href='/reports/sync/{ReportNameToCreateFolders}' target='_blank'>{CountCreateToDirectoryOk:N0} из {CountCreateToDirectoryAll:N0}</a>"));
                }

                if (CountUploadToFilesAll > 0)
                {
                    NameAndValue.Add(new More("Загружено файлов", $"<a href='/reports/sync/{ReportNameToUploadFiles}' target='_blank'>{CountUploadToFilesOK:N0} из {CountUploadToFilesAll:N0}</a>"));
                    NameAndValue.Add(new More("Передано данных", ToSize(CountUploadToBytes)));
                }
                #endregion

                IsOk = true;
            }
            catch (Exception ex)
            {
                NameAndValue = new List <More>()
                {
                    new More("Состояние", "Ошибка при выполнении задания"),
                    new More("Код", ex.ToString())
                };
            }

            // Отключаемся от сервера
            serv.Disconnect();
        }
コード例 #21
0
ファイル: PickBP.cs プロジェクト: SHKCB/RF
        public PickViewEntity GetEntity(PickViewEntity entity, RemoteServer remote)
        {
            entity = remote.Commond <PickViewEntity>(entity, "4000");

            return(entity);
        }
        public CrossServerTestMulticonn(RemoteServer server1, RemoteServer server2, RemoteServer server3,
                                        RemoteServer[] allConnections, bool putDupesToAll)
        {
            _server1        = server1;
            _server2        = server2;
            _server3        = server3;
            _allConnections = allConnections;

            Console.WriteLine("Putting 100 random assets to server1");
            Console.WriteLine(DateTime.Now);
            SHA1 sha = new SHA1CryptoServiceProvider();


            for (int i = 0; i < 100; i++)
            {
                string uuidstr       = OpenMetaverse.UUID.Random().ToString();
                byte[] randomBytes   = TestUtil.RandomBytes(500, 800000);
                byte[] challengeHash = sha.ComputeHash(randomBytes);
                _assetUuids.Add(uuidstr);
                _existingAssets.Add(uuidstr, challengeHash);

                Asset asset = new Asset(uuidstr, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", randomBytes);
                _server1.PutAsset(asset);
            }

            Console.WriteLine("Done: " + DateTime.Now);

            Console.WriteLine("Putting 100 random assets to server2");
            Console.WriteLine(DateTime.Now);


            for (int i = 0; i < 100; i++)
            {
                string uuidstr       = OpenMetaverse.UUID.Random().ToString();
                byte[] randomBytes   = TestUtil.RandomBytes(500, 800000);
                byte[] challengeHash = sha.ComputeHash(randomBytes);
                _assetUuids.Add(uuidstr);
                _existingAssets.Add(uuidstr, challengeHash);

                Asset asset = new Asset(uuidstr, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", randomBytes);
                _server2.PutAsset(asset);
            }

            Console.WriteLine("Done: " + DateTime.Now);

            Console.WriteLine("Putting 100 random assets to server3");
            Console.WriteLine(DateTime.Now);


            for (int i = 0; i < 100; i++)
            {
                string uuidstr       = OpenMetaverse.UUID.Random().ToString();
                byte[] randomBytes   = TestUtil.RandomBytes(500, 800000);
                byte[] challengeHash = sha.ComputeHash(randomBytes);
                _assetUuids.Add(uuidstr);
                _existingAssets.Add(uuidstr, challengeHash);

                Asset asset = new Asset(uuidstr, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", randomBytes);
                _server3.PutAsset(asset);
            }

            Console.WriteLine("Putting  duplicate assets to all servers");

            for (int i = 0; i < 20; i++)
            {
                string uuidstr       = OpenMetaverse.UUID.Random().ToString();
                byte[] randomBytes   = TestUtil.RandomBytes(500, 800000);
                byte[] challengeHash = sha.ComputeHash(randomBytes);
                _assetUuids.Add(uuidstr);
                _existingAssets.Add(uuidstr, challengeHash);

                Asset asset = new Asset(uuidstr, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", randomBytes);
                _server1.PutAsset(asset);

                if (putDupesToAll)
                {
                    _server2.PutAsset(asset);
                    _server3.PutAsset(asset);
                }

                _assetsThatExistOnAll.Add(uuidstr);
            }

            Console.WriteLine("Done: " + DateTime.Now);
        }
コード例 #23
0
ファイル: Api.cs プロジェクト: mstru/Testing
 /// <summary>
 /// Spracováva žiadosť HTTP na vzdialenom HTTP serveri umiestnenom na poskytovanej bazovej adrese.
 /// </summary>
 /// <param name="baseAddress">Zakladna adresa, ktoru requesty pouziju.</param>
 /// <returns>Server builder to set specific HTTP requests.</returns>
 public IApiBuilder WorkingRemotely(string baseAddress)
 {
     return(new ApiTestBuilder(RemoteServer.CreateNewClient(baseAddress), disposeServer: true));
 }
コード例 #24
0
 public static void Setup()
 {
     _provider = new RemoteServer(Constants.SERVICE_ADDRESS, Constants.SERVICE_PORT, Constants.PASSWORD);
     _provider.Start();
 }
コード例 #25
0
        public ReceiveDetailViewEntity GetGoodsUnitInfos(ReceiveDetailViewEntity entity, RemoteServer remote)
        {
            entity = remote.Commond <ReceiveDetailViewEntity>(entity, "1002");

            return(entity);
        }
コード例 #26
0
        static void ExecCmd(RemoteServer server, string cmd)
        {
            if (cmd == "iwim_heartbeat")
            {
                Socket sendSocket = new Socket(AddressFamily.InterNetwork,
                                               SocketType.Dgram, ProtocolType.Udp);

                sendSocket.Bind(new IPEndPoint(IPAddress.Any, 32702));

                Console.WriteLine("Sending heartbeat to server");
                IPAddress  sendTo       = Dns.GetHostAddresses(server.HostName)[0];
                IPEndPoint sendEndPoint = new IPEndPoint(sendTo, 32701);


                byte[] buffer = new byte[5];
                buffer[0] = 2;
                buffer[1] = 0xFF;
                buffer[2] = 0xFF;
                buffer[3] = 0xFF;
                buffer[4] = 0xFF;

                sendSocket.SendTo(buffer, 5, SocketFlags.None, sendEndPoint);
                sendSocket.Close();
            }

            if (cmd == "iwim_query_random" || cmd == "iwim_query_random_loop")
            {
                Socket sendSocket = new Socket(AddressFamily.InterNetwork,
                                               SocketType.Dgram, ProtocolType.Udp);

                int loops;

                if (cmd == "iwim_query_random")
                {
                    loops = 1;
                }
                else
                {
                    loops = 1000;
                }

                Console.WriteLine("Searching for {0} random assets starting {1}", loops, DateTime.Now);
                IPAddress  sendTo       = Dns.GetHostAddresses(server.HostName)[0];
                IPEndPoint sendEndPoint = new IPEndPoint(sendTo, 32701);
                byte[]     buffer       = new byte[33];
                buffer[0] = 0;

                for (int i = 0; i < loops; i++)
                {
                    Guid   guid  = Guid.NewGuid();
                    string fguid = guid.ToString().Replace("-", "");
                    Array.Copy(Util.UuidToAscii(fguid), 0, buffer, 1, 32);

                    sendSocket.SendTo(buffer, 33, SocketFlags.None, sendEndPoint);

                    EndPoint recvEndpoint = new IPEndPoint(IPAddress.Any, sendEndPoint.Port);
                    byte[]   response     = new byte[34];
                    sendSocket.ReceiveFrom(response, ref recvEndpoint);
                }

                Console.WriteLine("Done {0}", DateTime.Now);
            }

            if (cmd.Length > 10 && cmd.Substring(0, 10) == "iwim_query")
            {
                string uuid = cmd.Substring(11);

                Console.WriteLine("Asking for named asset " + uuid);
                server.GetAsset(uuid);
            }

            if (cmd == "getrandom")
            {
                Guid guid = Guid.NewGuid();
                Console.WriteLine("Asking for random asset " + guid.ToString());
                server.GetAsset(guid.ToString());
            }

            if (cmd.Length > 11 && cmd.Substring(0, 11) == "randomforce")
            {
                string begUUID = cmd.Substring(12);
                Guid   guid    = Guid.NewGuid();
                string newGuid = guid.ToString();
                newGuid = begUUID + newGuid.Substring(3);

                Console.WriteLine("Asking for semirandom asset " + newGuid);
                server.GetAsset(newGuid);
            }

            if (cmd.Length > 10 && cmd.Substring(0, 10) == "srandomput")
            {
                string begUUID = cmd.Substring(11);
                Guid   guid    = Guid.NewGuid();
                string newGuid = guid.ToString();
                newGuid = begUUID + newGuid.Substring(3);

                Console.WriteLine("Putting semirandom asset " + newGuid);

                Asset asset = new Asset(newGuid, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", TestUtil.RandomBytes());
                server.PutAsset(asset);
            }

            if (cmd.Length > 6 && cmd.Substring(0, 6) == "getone")
            {
                string uuid = cmd.Substring(7);

                Console.WriteLine("Asking for named asset " + uuid);
                Asset asset = server.GetAsset(uuid);

                using (System.IO.FileStream outstream = System.IO.File.OpenWrite("asset.txt"))
                {
                    outstream.Write(asset.Data, 0, asset.Data.Length);
                    outstream.Close();
                }
            }

            if (cmd == "put")
            {
                Console.WriteLine("Putting 1000 random assets to server");
                Console.WriteLine(DateTime.Now);
                for (int i = 0; i < 1000; i++)
                {
                    Asset asset = new Asset(OpenMetaverse.UUID.Random().ToString(), 1,
                                            false, false, 0, "Random Asset", "Radom Asset Desc", TestUtil.RandomBytes());
                    server.PutAsset(asset);
                }
                Console.WriteLine("Done: " + DateTime.Now);
            }

            if (cmd == "putone")
            {
                string uuid = OpenMetaverse.UUID.Random().ToString();
                _lastRandom = uuid;

                Console.WriteLine("Putting 1 random asset to server");
                Console.WriteLine(uuid);
                Console.WriteLine(DateTime.Now);

                Asset asset = new Asset(uuid, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", TestUtil.RandomBytes());
                server.PutAsset(asset);

                Console.WriteLine("Done: " + DateTime.Now);
            }

            if (cmd == "repeatput")
            {
                Console.WriteLine("Reputting random asset to server");
                Console.WriteLine(_lastRandom);
                Console.WriteLine(DateTime.Now);

                Asset asset = new Asset(_lastRandom, 1,
                                        false, false, 0, "Random Asset", "Radom Asset Desc", TestUtil.RandomBytes());
                server.PutAsset(asset);

                Console.WriteLine("Done: " + DateTime.Now);
            }

            if (cmd == "verify")
            {
                Dictionary <string, byte[]> uuids = new Dictionary <string, byte[]>();

                Console.WriteLine("Putting 1000 random 100K assets to server");
                Console.WriteLine(DateTime.Now);

                SHA1 sha = new SHA1CryptoServiceProvider();


                for (int i = 0; i < 1000; i++)
                {
                    string uuidstr       = OpenMetaverse.UUID.Random().ToString();
                    byte[] randomBytes   = TestUtil.RandomBytes();
                    byte[] challengeHash = sha.ComputeHash(randomBytes);
                    uuids.Add(uuidstr, challengeHash);

                    Asset asset = new Asset(uuidstr, 1,
                                            false, false, 0, "Random Asset", "Radom Asset Desc", randomBytes);
                    server.PutAsset(asset);
                }
                Console.WriteLine("Done: " + DateTime.Now);
                Console.WriteLine("Rereading written assets");
                Console.WriteLine(DateTime.Now);

                foreach (KeyValuePair <string, byte[]> kvp in uuids)
                {
                    Asset  a    = server.GetAsset(kvp.Key);
                    byte[] hash = sha.ComputeHash(a.Data);
                    if (!TestUtil.Test.test(hash, kvp.Value))
                    {
                        Console.WriteLine("Mismatched hash on " + kvp.Key);
                        Console.WriteLine("Got " + Util.HashToHex(hash) + " expected " + Util.HashToHex(kvp.Value));

                        ASCIIEncoding encoding = new ASCIIEncoding();

                        Console.WriteLine("Data " + encoding.GetString(a.Data));
                    }
                }

                Console.WriteLine("finished verifing assets");
                Console.WriteLine(DateTime.Now);
            }

            if (cmd == "purgelocals")
            {
                server.MaintPurgeLocals();
            }

            if (cmd == "thread")
            {
                Console.WriteLine("Starting heavy thread test");
                ThreadTest test = new ThreadTest(server, false);
                test.Start();
            }

            if (cmd == "thread_purgelocal")
            {
                Console.WriteLine("Starting heavy thread test");
                ThreadTest test = new ThreadTest(server, true);
                test.Start();
            }

            if (cmd == "threadmesh")
            {
                RemoteServer server2 = ConnectServerByConsole();

                Console.WriteLine("Starting heavy thread mesh test");
                CrossServerThreadTest test = new CrossServerThreadTest(server, server2);
                test.Start();
            }

            if (cmd == "threadmesh3")
            {
                RemoteServer server2 = ConnectServerByConsole();
                RemoteServer server3 = ConnectServerByConsole();

                Console.WriteLine("Starting heavy thread mesh test");
                CrossServerThreadTest3 test = new CrossServerThreadTest3(server, server2, server3);
                test.Start();
            }

            if (cmd == "testmulticonn")
            {
                RemoteServer[] server1 = ConnectServerByConsoleX(10);
                RemoteServer[] server2 = ConnectServerByConsoleX(10);
                RemoteServer[] server3 = ConnectServerByConsoleX(10);

                List <RemoteServer> allServers = new List <RemoteServer>();
                allServers.AddRange(server1);
                allServers.AddRange(server2);
                allServers.AddRange(server3);

                CrossServerTestMulticonn test = new CrossServerTestMulticonn(server1[0], server2[0], server3[0], allServers.ToArray(), true);
                test.Start();
            }

            if (cmd == "testmulticonnsingle")
            {
                RemoteServer[] server1 = ConnectServerByConsoleX(10);

                CrossServerTestMulticonn test = new CrossServerTestMulticonn(server1[0], server1[0], server1[0], server1, false);
                test.Start();
            }

            if (cmd == "meshbias3")
            {
                RemoteServer[] servers2 = ConnectServerByConsoleX(10);
                RemoteServer   server3  = ConnectServerByConsole();

                Console.WriteLine("Starting heavy thread biased mesh test");
                CrossServerBiasTest3 test = new CrossServerBiasTest3(server, servers2, server3);
                test.Start();
            }

            if (cmd == "connect")
            {
                //fast connect and disconnect to try and kill the whip service
                for (int i = 0; i < 1000; i++)
                {
                    server.Stop();
                    server.Start();
                }
            }

            if (cmd == "status")
            {
                Console.WriteLine(server.GetServerStatus());
            }

            if (cmd == "prefix")
            {
                Console.WriteLine(server.GetAssetIds("00000000000000000000000000000000"));
            }

            if (cmd == "compare")
            {
                RemoteServer server1 = ConnectServerByConsole();
                RemoteServer server2 = ConnectServerByConsole();
                RunCompare(server1, server2);
            }

            if (cmd == "import")
            {
                Console.Write("Connection String: ");
                string connString = Console.ReadLine();
                Console.WriteLine();
                Console.Write("Start at: ");
                int startAt = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine();

                _import = new AssetImport(server, connString, startAt);
                _import.Start();
            }

            if (cmd == "msimport")
            {
                Console.Write("Connection String: ");
                string connString = Console.ReadLine();
                Console.WriteLine();
                Console.Write("Start at: ");
                Guid startAt = new Guid(Console.ReadLine());
                Console.WriteLine();

                _msimport = new MsSqlAssetImport(server, connString, startAt);
                _msimport.Start();
            }

            if (cmd == "stop import")
            {
                if (_import != null)
                {
                    _import.Stop();
                }
                _import = null;
                if (_msimport != null)
                {
                    _msimport.Stop();
                }
                _msimport = null;
            }
        }
コード例 #27
0
        /// <summary>
        /// The main entry point into the application.
        /// </summary>
        /// <param name="args">The set of arguments passed in on the command line.</param>
        public static void Main(string[] args)
        {
            Options commandLineOptions = new Options(args);

            if (commandLineOptions.HelpRequested)
            {
                PrintUsageMessage();
                return;
            }

            if (commandLineOptions.VersionRequested)
            {
                Console.WriteLine(commandLineOptions.ServerVersion);
                return;
            }

            logger = new ConsoleLogger(commandLineOptions.LoggingLevel);
            if (commandLineOptions.ReserveUrl)
            {
                bool urlReserved = ReserveUrl(commandLineOptions.UrlToReserve, true);
                if (!urlReserved)
                {
                    Environment.ExitCode = 1;
                }
            }
            else
            {
                LogVersionDetails(commandLineOptions);
                userName             = commandLineOptions.UserName;
                password             = commandLineOptions.Password;
                ignoreRemoteShutdown = commandLineOptions.IgnoreRemoteShutdown;
                if (string.IsNullOrEmpty(commandLineOptions.DeviceName))
                {
                    httpServer = new RemoteServer(commandLineOptions.Port, commandLineOptions.UrlPath, logger);
                }
                else
                {
                    httpServer = new RemoteServer(commandLineOptions.Port, commandLineOptions.UrlPath, commandLineOptions.DeviceName, commandLineOptions.DeviceControllerKind, logger);
                }

                httpServer.ShutdownRequested += new EventHandler(OnRemoteServerShutdownRequested);
                bool urlReservationExists = CheckForUrlReservation(commandLineOptions);
                if (urlReservationExists)
                {
                    if (!string.IsNullOrEmpty(commandLineOptions.HubLocation))
                    {
                        RegisterWithHub(commandLineOptions.HubLocation);
                    }

                    try
                    {
                        httpServer.StartListening();
                        logger.Log(string.Format(CultureInfo.InvariantCulture, "Server started. RemoteWebDriver instances connect to {0}", httpServer.ListenerPrefix), LogLevel.Info);
                        Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress);
                    }
                    catch (WindowsPhoneDriverException ex)
                    {
                        logger.Log(string.Format(CultureInfo.InvariantCulture, "Server could not be started. Reported error: {0}", ex.Message), LogLevel.Error);
                        continueRunning = false;
                    }

                    while (continueRunning)
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }
            }
        }
コード例 #28
0
 private void StopServer()
 {
     Screens.Clear();
     server.Dispose();
     server = null;
 }
コード例 #29
0
ファイル: Api.cs プロジェクト: mstru/Testing
 /// <summary>
 /// Konfiguracia vzdialeneho servera.
 /// </summary>
 /// <param name="baseAddress">Zakladna adresa pre ziadosti.</param>
 /// <returns>Server builder.</returns>
 public IApiBuilder IsLocatedAt(string baseAddress)
 {
     RemoteServer.ConfigureGlobal(baseAddress);
     return(this.WorkingRemotely());
 }
コード例 #30
0
 /// <summary>
 /// Initializes the instance of <see cref="Alachisoft.NCache.Web.Caching.CacheServerInfo"/> for this application.
 /// </summary>
 internal CacheServerInfo()
 {
     ServerInfo = new RemoteServer();
 }
コード例 #31
0
        public ReceiveHeaderViewEntity GetReceiveDetail(ReceiveHeaderViewEntity entity, RemoteServer remote)
        {
            entity = remote.Commond <ReceiveHeaderViewEntity>(entity, "1001");

            return(entity);
        }
コード例 #32
0
        private void RunTestCodeWithServerAndClientConnection(TestCodeDelegate deleg)
        {
            var mouse = new RemoteMouse();
            var touch = new RemoteTouch();
            var keyboard = new RemoteKeyboard();
            var analyser = new InputPacketsAnalyser();
            analyser.SetActiveMouse(mouse);
            analyser.SetActiveTouch(touch);
            analyser.SetActiveKeyboard(keyboard);
            var server = new RemoteServer(analyser, TestPort);
            RemoteClient client = CreateTestClient();
            Task connection = client.ConnectToServerAsync();
            connection.Wait();

            var data = new TestObjects
            { Client = client, Mouse = mouse, Touch = touch, Keyboard = keyboard };
            server.Received += delegate
            {
                data.NumberOfReceivedMessages++;
            };

            try
            {
                if (deleg != null)
                    deleg(data);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.ToString());
            }
            finally
            {
                client.Dispose();
                server.Dispose();
            }
        }