Untitled

mail@pastecode.io avatar
unknown
csharp
15 days ago
2.5 kB
3
Indexable
Never
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Client
{
    internal class Program
    {
        private static TcpClient tcpClient;
        private static NetworkStream clientStream;
        private static string clientName;

        public static void Main(string[] args)
        {
            Console.WriteLine("Enter your name: ");
            clientName = Console.ReadLine();

            StartClient();

            Console.ReadLine();
        }

        public static void StartClient()
        {
            try
            {
                tcpClient = new TcpClient("127.0.0.1", 8888);
                clientStream = tcpClient.GetStream();

                byte[] name = Encoding.ASCII.GetBytes(clientName);
                clientStream.Write(name, 0, name.Length);
                clientStream.Flush();

                Console.WriteLine("Connected to the server...");

                Thread receiveThread = new Thread(ReceiveMessages);
                receiveThread.Start();

                while (true)
                {
                    Console.WriteLine("Enter a message: ");
                    string message = Console.ReadLine();

                    byte[] data = Encoding.ASCII.GetBytes(message);
                    clientStream.Write(data, 0, data.Length);
                    clientStream.Flush();
                }
            } catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        public static void ReceiveMessages()
        {
            byte[] receivedBuffer = new byte[4096];
            int bytesRead;

            while (true)
            {
                try
                {
                    bytesRead = clientStream.Read(receivedBuffer, 0, 4096);
                }
                catch
                {
                    break;
                }

                if (bytesRead == 0)
                {
                    break;
                }

                string serverMessage = Encoding.ASCII.GetString(receivedBuffer, 0, bytesRead);
                Console.WriteLine(serverMessage);
            }

            Console.WriteLine("Disconnected from the server.");
            Environment.Exit(0);
        }
    }
}
Leave a Comment