///запус потока 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 = "Прервано соединение с сервером реферирования. Закройте то окно.")); } }
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(); } } }
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(); }