Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Net;
- using System.Net.Sockets;
- namespace Client3
- {
- public partial class Form1 : Form
- {
- private static Socket clientSocket;
- private const string HostName = "localhost";
- private const int PortNumber = 2000;
- byte[] buffer = new byte[1024];
- public Form1()
- {
- InitializeComponent();
- clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- ConnectToServer();
- }
- private void ConnectToServer()
- {
- try
- {
- clientSocket.Connect("192.168.0.11", 2000);
- AddMessage("Connected to server");
- clientSocket.BeginReceive(buffer, 0, 1024, 0, new AsyncCallback(ReceiveCallback), clientSocket);
- }
- catch (Exception)
- {
- AddMessage("Unable to connect to server");
- }
- }
- private void DisconnectFromServer()
- {
- ClearMessageList();
- AddMessage("Disconnected from server");
- }
- public void ReceiveCallback(IAsyncResult asyncResult)
- {
- Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- try
- {
- client = clientSocket.EndAccept(asyncResult);
- if (client.Connected)
- {
- int bytesRead = client.EndReceive(asyncResult);
- if (bytesRead > 0) AddMessage(Encoding.ASCII.GetString(buffer, 0, bytesRead));
- client.BeginReceive(buffer, 0, 1024, 0, new AsyncCallback(ReceiveCallback), client);
- }
- }
- catch (Exception)
- {
- DisconnectFromServer();
- }
- }
- private void AddMessage(string message)
- {
- messageList.Invoke((MethodInvoker)delegate ()
- {
- messageList.Items.Add(message);
- });
- }
- private void ClearMessageBox()
- {
- messageBox.Invoke((MethodInvoker)delegate ()
- {
- messageBox.Text = String.Empty;
- });
- }
- private void ClearMessageList()
- {
- messageList.Invoke((MethodInvoker)delegate ()
- {
- messageList.Items.Clear();
- });
- }
- private void SendButtonOnClick(object sender, EventArgs e)
- {
- string message = messageBox.Text;
- ClearMessageBox();
- clientSocket.Send(Encoding.ASCII.GetBytes(message));
- }
- }
- }
Add Comment
Please, Sign In to add comment