Ejemplo n.º 1
0
        ///запус потока
        private void threadForRef_start(byte compressPercent)
        {
            
            textBlock.Dispatcher.Invoke(new Action(() => textBlock.Text = "Статья на сжатии..."));
            button.Dispatcher.Invoke(new Action(() => button.Visibility = System.Windows.Visibility.Hidden));
            int port = Int32.Parse(ConfigurationManager.AppSettings["refServerPort"].ToString());

            TCPClient refSever = null;
            try
            {
                refSever = new TCPClient(refServIP, port);
            }
            catch { }
            
            if(refSever != null)
            {
                string url = URL;

                string message = url + "|" + compressPercent;

                MetaData md = new MetaData(MetaData.Roles.client, MetaData.Actions.refNews, MetaData.ContentTypes.link, message);
                refSever.Send(message, md);
                string response = refSever.ReceiveSyncData(0);
                textBlock.Dispatcher.Invoke(new Action(() => textBlock.Text = response));
                button.Dispatcher.Invoke(new Action(() => button.Visibility = System.Windows.Visibility.Visible));
            }
            else
            {
                textBlock.Dispatcher.Invoke(new Action(() => textBlock.Text = "Прервано соединение с сервером реферирования. Закройте то окно."));
            }

        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            //Console.OutputEncoding = Encoding.U;

            //Объвляем сокет-сервер (к нему будут подключаться клиенты)
            listener = new TCPSListener("127.0.0.1", 1452);
            listener.onMessage += ReceiveMessage;
            listener.StartListen();

            Console.WriteLine("Запущен сокет-сервер по адресу " + listener.Adress);
            

            client = new TCPClient("127.0.0.1", 1452);
            client.onMessage += ReceiveMessage;
            client.StartListen();

            client1 = new TCPClient("127.0.0.1", 1452);
            client1.onMessage += ReceiveMessage;
            client1.StartListen();

            Random rnd = new Random();

            while (true)
            {
                Console.ReadKey();
                client.Send("Первый клиент");
                client1.Send("Второй клиент");
                if(rnd.Next(0, 100) == 35)
                {
                    client.Close();
                }
                if (rnd.Next(0, 100) == 13)
                {
                    client1.Close();
                }
                if (rnd.Next(0, 100) == 13)
                {
                    listener.Close();
                }
            }
        }
Ejemplo n.º 3
0
        private void btnReferate_Click(object sender, RoutedEventArgs e)
        {
            if (lvArticles.SelectedIndex < 0)
            {
                MessageBox.Show("выберите статью");
                return;
            }
            try
            {
                string url = rssChanels[cmbCategoryList.SelectedIndex].Articles[lvArticles.SelectedIndex].link;
                MetaData md = new MetaData(MetaData.Roles.client, MetaData.Actions.refNews);
                int port = Int32.Parse(ConfigurationManager.AppSettings["dispatcherTCPport"].ToString());
                dispComponent = new TCPClient(ipDispatcher, port);
                dispComponent.Send("", md);
                string response = dispComponent.ReceiveSyncData(0);

                if (response == "0000")
                {
                    MessageBox.Show("В данный момент эта опция не доступна. Пожалуйста, обратитесь к администратору.");
                    return;
                }

                ReferateView winRef = new ReferateView(url, response);
                winRef.Show();
            }
            catch (Exception)
            {

                MessageBox.Show("Нет подключения к диспетчеру. Идет повторный поиск диспетера.");
                broadCast.Start();
            }
            
            //ReferateView winRef = new ReferateView();
            
        }