Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using System.Net;
- using System.Net.Sockets;
- using System.IO;
- using System.ComponentModel;
- using System.Windows.Threading;
- using System.Threading;
- using System.Windows.Controls.Primitives;
- namespace yt_tutek_chyba_good
- {
- public partial class MainWindow : Window
- {
- private TcpClient client;
- private StreamReader STR;
- private StreamWriter STW;
- private string received;
- private String text_to_send;
- public BackgroundWorker worker1;
- public BackgroundWorker worker2;
- public MainWindow()
- {
- InitializeComponent();
- worker1 = new BackgroundWorker();
- worker1.DoWork += backgroundWorker1_DoWork;
- worker2 = new BackgroundWorker();
- worker2.DoWork += backgroundWorker2_DoWork;
- }
- private void buttonStartServer_Click(object sender, RoutedEventArgs e)
- {
- TcpListener listener = new TcpListener(IPAddress.Any, int.Parse(textBoxPortServer.Text));
- listener.Start();
- client = listener.AcceptTcpClient();
- STR = new StreamReader(client.GetStream());
- STW = new StreamWriter(client.GetStream());
- STW.AutoFlush = true;
- worker1.RunWorkerAsync();
- worker2.WorkerSupportsCancellation = true;
- }
- private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
- {
- while (client.Connected)
- {
- try
- {
- received = STR.ReadLine();
- this.textBoxConversation.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate () { textBoxConversation.AppendText("You: " + received + "\n"); });
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- }
- private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
- {
- if (client.Connected)
- {
- STW.WriteLine(text_to_send);
- this.textBoxConversation.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate () { textBoxConversation.AppendText("Me: " + text_to_send + "\n"); });
- }
- else
- {
- MessageBox.Show("send failed !");
- }
- worker2.CancelAsync();
- }
- private void buttonConnect_Click(object sender, RoutedEventArgs e)
- {
- client = new TcpClient();
- IPEndPoint IP_End = new IPEndPoint(IPAddress.Parse(textBoxIPClient.Text), int.Parse(textBoxPortClient.Text));
- try
- {
- client.Connect(IP_End);
- if (client.Connected)
- {
- textBoxConversation.AppendText("Connected to server" + "\n");
- STR = new StreamReader(client.GetStream());
- STW = new StreamWriter(client.GetStream());
- STW.AutoFlush = true;
- worker1.RunWorkerAsync();
- worker2.WorkerSupportsCancellation = true;
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- private void buttonSend_Click(object sender, RoutedEventArgs e)
- {
- if (textBoxMessage.Text != "")
- {
- text_to_send = textBoxMessage.Text;
- worker2.RunWorkerAsync();
- }
- textBoxMessage.Text = "";
- }
- }
- }
Add Comment
Please, Sign In to add comment