Пример #1
0
        ////try to get picture from one to one mode
        //public static void try_get_screen(GlobalTypes.ClientInfo item, GlobalTypes.ServiceMessageStruct msg)
        //{
        //    UdpClient client = null;
        //    if ((msg.Flag > 0) && (msg.Flag < 11))
        //    {
        //        client = new UdpClient(5012);
        //        IPEndPoint rem_pnt = new IPEndPoint(item.HostInfo.Addr, 5012);
        //        client.Client.ReceiveTimeout = 1000;
        //        client.Client.SendTimeout = 1000;
        //        for (int i = 0; i < 10; i++)
        //        {
        //            if (thr_One_To_One == null)
        //            {
        //                send_to<GlobalTypes.ServiceMessageStruct>(client, rem_pnt, msg);
        //                rem_pnt = null;
        //                byte[] buffer = client.Receive(ref rem_pnt);
        //                if (buffer != null)
        //                {
        //                    System.Windows.Forms.MessageBox.Show("TYeah");
        //                    thr_One_To_One = new Thread(one_to_one);
        //                    thr_One_To_One.SetApartmentState(ApartmentState.STA);
        //                    thr_One_To_One.Start();
        //                    break;
        //                }
        //            }
        //        }

        //        if (thr_One_To_One == null)
        //        {
        //            System.Windows.Forms.MessageBox.Show("Disable unicast connect");
        //        }
        //    }
        //}

        //function which get some data from UDP
        public static void get_query(Object Args)
        {
            UdpClient client = null;

            try
            {
                Object[] args = (Object[])Args;
                GlobalTypes.ClientInfo           item = (GlobalTypes.ClientInfo)args[0];
                GlobalTypes.ServiceMessageStruct msg  = (GlobalTypes.ServiceMessageStruct)args[1];
                switch (Encoding.UTF8.GetString(msg.Msg))
                {
                case "GET":
                    switch (msg.Flag)
                    {
                    case 0:
                        try_get_thumb(item, msg);
                        break;

                    default:
                        //try_get_screen(item, msg);
                        break;
                    }
                    break;
                }
            }
            catch (SocketException ex) { }
            catch (Exception ex1) { }
            finally
            {
                if (client != null)
                {
                    client.Close();
                }
            }
        }
Пример #2
0
 private static void cnt_elem_refr(GlobalTypes.HostInfo host_inf,
                                   GlobalTypes.SysMessageStruct msg,
                                   GlobalTypes.ClientInfo item,
                                   bool flag)
 {
     if ((Encoding.UTF8.GetString(msg.Msg) == "SYN") && (msg.Flag == 2))
     {
         if (!flag)
         {
             item = new GlobalTypes.ClientInfo(host_inf);
             lock (MainWindow.Client_Catalog)
             {
                 MainWindow.Client_Catalog.Add(item);
             }
             RCScreenClient.paint_thmb_scr(item);
         }
         else
         {
             lock (MainWindow.Client_Catalog)
             {
                 item.HostInfo       = host_inf;
                 item.LastConnection = DateTime.Now;
             }
         }
         lock (XPorter.Bus.Main_Handle.TreeUngroup)
         {
             XPorter.Bus.Main_Handle.TreeUngroup.Dispatcher.BeginInvoke(new MethodInvoker(delegate()
             {
                 System.Windows.Controls.ContextMenu item_menu = ReinCorpDesign.sources.UserContextMenu.get_contx_menu(item);
                 if (XPorter.Bus.Main_Handle.TreeUngroup.IsExpanded == false)
                 {
                     XPorter.Bus.Main_Handle.TreeUngroup.IsExpanded = true;
                 }
                 TreeViewItem tr_item = new TreeViewItem();
                 tr_item.ContextMenu  = item_menu;
                 tr_item.Header       = item.HostInfo.Addr.ToString();
                 tr_item.Tag          = "3";
                 XPorter.Bus.Main_Handle.TreeUngroup.Items.Add(tr_item);
             }));
         }
         Thread   thr_tmp = new Thread(RCScreenClient.get_query);
         Object[] args    = new Object[2];
         args[0]      = item;
         args[1]      = new GlobalTypes.ServiceMessageStruct("GET", 0);
         thr_tmp.Name = "get_query";
         thr_tmp.SetApartmentState(ApartmentState.STA);
         //thr_tmp.Start(args);
     }
 }
Пример #3
0
 public static void refresh_iterator()
 {
     lock (MainWindow.Client_Catalog)
     {
         foreach (var item in MainWindow.Client_Catalog)
         {
             if ((System.DateTime.Now - item.LastConnection).Minutes > 1)
             {
             }
             Object[] args = new Object[2];
             args[0] = item;
             args[1] = new GlobalTypes.ServiceMessageStruct("GET", 0);
             get_query(args);
         }
     }
 }
Пример #4
0
        //get small picture into thumb
        public static void try_get_thumb(GlobalTypes.ClientInfo item, GlobalTypes.ServiceMessageStruct msg)
        {
            UdpClient client = null;

            client = new UdpClient();
            lock (MainWindow.Client_Catalog)
            {
                IPEndPoint rem_pnt = new IPEndPoint(item.HostInfo.Addr, 5011);
                send_to <GlobalTypes.ServiceMessageStruct>(client, rem_pnt, msg);
                rem_pnt = null;
                client.Client.ReceiveTimeout = 1000;
                byte[] buffer = client.Receive(ref rem_pnt);
                if (buffer != null)
                {
                    reload_thmb_scr(buffer, item);
                }
            }
        }