Guest User

Clienci

a guest
Aug 15th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.08 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.         private void buttonStartServer_Click(object sender, RoutedEventArgs e)
  47.         {
  48.             TcpListener listener = new TcpListener(IPAddress.Any, int.Parse(textBoxPortServer.Text));
  49.             listener.Start();
  50.             client = listener.AcceptTcpClient();
  51.             STR = new StreamReader(client.GetStream());
  52.             STW = new StreamWriter(client.GetStream());
  53.             STW.AutoFlush = true;
  54.  
  55.             worker1.RunWorkerAsync();
  56.             worker2.WorkerSupportsCancellation = true;
  57.         }
  58.  
  59.  
  60.         private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  61.         {
  62.             while (client.Connected)
  63.             {
  64.                 try
  65.                 {
  66.                     received = STR.ReadLine();
  67.                     this.textBoxConversation.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate () { textBoxConversation.AppendText("You: " + received + "\n"); });
  68.                 }
  69.                 catch (Exception ex)
  70.                 {
  71.                     MessageBox.Show(ex.Message);
  72.                 }
  73.             }
  74.         }
  75.         private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
  76.         {
  77.             if (client.Connected)
  78.             {
  79.                 STW.WriteLine(text_to_send);
  80.                 this.textBoxConversation.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate () { textBoxConversation.AppendText("Me: " + text_to_send + "\n"); });
  81.             }
  82.             else
  83.             {
  84.                 MessageBox.Show("send failed !");
  85.             }
  86.             worker2.CancelAsync();
  87.         }
  88.  
  89.         private void buttonConnect_Click(object sender, RoutedEventArgs e)
  90.         {
  91.             client = new TcpClient();
  92.             IPEndPoint IP_End = new IPEndPoint(IPAddress.Parse(textBoxIPClient.Text), int.Parse(textBoxPortClient.Text));
  93.  
  94.             try
  95.             {
  96.                 client.Connect(IP_End);
  97.                 if (client.Connected)
  98.                 {
  99.                     textBoxConversation.AppendText("Connected to server" + "\n");
  100.                     STR = new StreamReader(client.GetStream());
  101.                     STW = new StreamWriter(client.GetStream());
  102.                     STW.AutoFlush = true;
  103.  
  104.                     worker1.RunWorkerAsync();
  105.  
  106.                     worker2.WorkerSupportsCancellation = true;
  107.  
  108.                 }
  109.             }
  110.             catch (Exception ex)
  111.             {
  112.                 MessageBox.Show(ex.Message);
  113.             }
  114.  
  115.         }
  116.         private void buttonSend_Click(object sender, RoutedEventArgs e)
  117.         {
  118.             if (textBoxMessage.Text != "")
  119.             {
  120.                 text_to_send = textBoxMessage.Text;
  121.                 worker2.RunWorkerAsync();
  122.             }
  123.             textBoxMessage.Text = "";
  124.         }
  125.     }
  126.  
  127.  
  128. }
Add Comment
Please, Sign In to add comment