////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(); } } }
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); } }
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); } } }
//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); } } }