Advertisement
Guest User

Untitled

a guest
Aug 25th, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. using System.Net;
  16. using System.Net.Sockets;
  17. using System.IO;
  18. using System.ComponentModel;
  19. using System.Windows.Threading;
  20. using System.Threading;
  21. using System.Windows.Controls.Primitives;
  22.  
  23. namespace yt_tutek_chyba_good
  24. {
  25.     public partial class MainWindow : Window
  26.     {
  27.         private TcpClient client;
  28.         private StreamReader STR;
  29.         private StreamWriter STW;
  30.         private string received;
  31.         private String text_to_send;                                            
  32.         public BackgroundWorker worker1;
  33.         public BackgroundWorker worker2;
  34.  
  35.  
  36.         public MainWindow()
  37.         {
  38.             InitializeComponent();
  39.             worker1 = new BackgroundWorker();
  40.             worker1.DoWork += backgroundWorker1_DoWork;
  41.  
  42.             worker2 = new BackgroundWorker();
  43.             worker2.DoWork += backgroundWorker2_DoWork;
  44.         }
  45.  
  46.  
  47.         private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  48.         {
  49.             while (client.Connected)
  50.             {
  51.                 try
  52.                 {
  53.                     received = STR.ReadLine();
  54.                     this.textBoxConversation.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate () { textBoxConversation.AppendText("->: " + received + "\n"); });
  55.                     //textBoxConversation.ScrollToEnd();
  56.                     this.textBoxConversation.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate () { textBoxConversation.ScrollToEnd(); });
  57.                 }
  58.                 catch (Exception ex)
  59.                 {
  60.                     MessageBox.Show(ex.Message);
  61.                 }
  62.             }
  63.         }
  64.         private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
  65.         {
  66.             if (client.Connected)
  67.             {
  68.                 STW.WriteLine(text_to_send);    
  69.             }
  70.             else
  71.             {
  72.                 MessageBox.Show("send failed !");
  73.             }
  74.             worker2.CancelAsync();
  75.         }
  76.  
  77.         private void buttonConnect_Click(object sender, RoutedEventArgs e)
  78.         {
  79.             client = new TcpClient();
  80.             IPEndPoint IP_End = new IPEndPoint(IPAddress.Parse(textBoxIPClient.Text), int.Parse(textBoxPortClient.Text));
  81.  
  82.             try
  83.             {
  84.                 client.Connect(IP_End);
  85.                 if (client.Connected)
  86.                 {
  87.                     textBoxConversation.AppendText("Connected to server" + "\n");
  88.                     STR = new StreamReader(client.GetStream());
  89.                     STW = new StreamWriter(client.GetStream());
  90.                     STW.AutoFlush = true;
  91.  
  92.                     worker1.RunWorkerAsync();
  93.  
  94.                     worker2.WorkerSupportsCancellation = true;
  95.  
  96.                 }
  97.             }
  98.             catch (Exception ex)
  99.             {
  100.                 MessageBox.Show(ex.Message);
  101.             }
  102.  
  103.         }
  104.         private void buttonSend_Click(object sender, RoutedEventArgs e)
  105.         {
  106.             if (textBoxMessage.Text != "")
  107.             {
  108.                 text_to_send = textBoxMessage.Text;
  109.                 worker2.RunWorkerAsync();
  110.             }
  111.             textBoxMessage.Text = "";
  112.         }
  113.  
  114.         private void textBoxIPServer_TextChanged(object sender, TextChangedEventArgs e)
  115.         {
  116.  
  117.         }
  118.     }
  119.  
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement