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; } }
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); } }
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(); }
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(); } }
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; } }
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); }
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); } }
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(); }
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"); }
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(); }
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(); } } }
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); }
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); }
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; } }
public ImWrapper() { _remoteServer = new RemoteServer("amir", "123456", "https://daxdemo.swenglabs.ncr.com:8443/StoreWebServices"); }
public void SetUpRemoteServer() { _remoteServer = new(BrowserType.Name); }
/// <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); }
public void Init(RemoteServer server) { this.server = server; txtServerName.text = server.servername; }
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; } } }
/// <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(); }
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); }
/// <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)); }
public static void Setup() { _provider = new RemoteServer(Constants.SERVICE_ADDRESS, Constants.SERVICE_PORT, Constants.PASSWORD); _provider.Start(); }
public ReceiveDetailViewEntity GetGoodsUnitInfos(ReceiveDetailViewEntity entity, RemoteServer remote) { entity = remote.Commond <ReceiveDetailViewEntity>(entity, "1002"); return(entity); }
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; } }
/// <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); } } } }
private void StopServer() { Screens.Clear(); server.Dispose(); server = null; }
/// <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()); }
/// <summary> /// Initializes the instance of <see cref="Alachisoft.NCache.Web.Caching.CacheServerInfo"/> for this application. /// </summary> internal CacheServerInfo() { ServerInfo = new RemoteServer(); }
public ReceiveHeaderViewEntity GetReceiveDetail(ReceiveHeaderViewEntity entity, RemoteServer remote) { entity = remote.Commond <ReceiveHeaderViewEntity>(entity, "1001"); return(entity); }
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(); } }