Pavle_nis

Client

Apr 2nd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. using System.Net;
  12. using System.Net.Sockets;
  13.  
  14. namespace Client3
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         private static Socket clientSocket;
  19.         private const string HostName = "localhost";
  20.         private const int PortNumber = 2000;
  21.         byte[] buffer = new byte[1024];
  22.         public Form1()
  23.         {
  24.             InitializeComponent();
  25.             clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  26.         }
  27.  
  28.         private void Form1_Load(object sender, EventArgs e)
  29.         {
  30.             ConnectToServer();
  31.         }
  32.         private void ConnectToServer()
  33.         {
  34.             try
  35.             {
  36.                 clientSocket.Connect("192.168.0.11", 2000);
  37.  
  38.                 AddMessage("Connected to server");
  39.  
  40.                 clientSocket.BeginReceive(buffer, 0, 1024, 0, new AsyncCallback(ReceiveCallback), clientSocket);
  41.             }
  42.             catch (Exception)
  43.             {
  44.                 AddMessage("Unable to connect to server");
  45.             }
  46.         }
  47.  
  48.         private void DisconnectFromServer()
  49.         {
  50.             ClearMessageList();
  51.             AddMessage("Disconnected from server");
  52.         }
  53.  
  54.         public void ReceiveCallback(IAsyncResult asyncResult)
  55.         {
  56.             Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  57.  
  58.             try
  59.             {
  60.                 client = clientSocket.EndAccept(asyncResult);
  61.                 if (client.Connected)
  62.                 {
  63.                     int bytesRead = client.EndReceive(asyncResult);
  64.                     if (bytesRead > 0) AddMessage(Encoding.ASCII.GetString(buffer, 0, bytesRead));
  65.                     client.BeginReceive(buffer, 0, 1024, 0, new AsyncCallback(ReceiveCallback), client);
  66.                 }
  67.             }
  68.             catch (Exception)
  69.             {
  70.                 DisconnectFromServer();
  71.             }
  72.         }
  73.  
  74.         private void AddMessage(string message)
  75.         {
  76.             messageList.Invoke((MethodInvoker)delegate ()
  77.             {
  78.                 messageList.Items.Add(message);
  79.             });
  80.         }
  81.         private void ClearMessageBox()
  82.         {
  83.             messageBox.Invoke((MethodInvoker)delegate ()
  84.             {
  85.                 messageBox.Text = String.Empty;
  86.             });
  87.         }
  88.  
  89.         private void ClearMessageList()
  90.         {
  91.             messageList.Invoke((MethodInvoker)delegate ()
  92.             {
  93.                 messageList.Items.Clear();
  94.             });
  95.         }
  96.         private void SendButtonOnClick(object sender, EventArgs e)
  97.         {
  98.             string message = messageBox.Text;
  99.             ClearMessageBox();
  100.             clientSocket.Send(Encoding.ASCII.GetBytes(message));
  101.         }
  102.     }
  103. }
Add Comment
Please, Sign In to add comment