Задать вопрос
Morpheus_God
@Morpheus_God

Как отобразить подключение клиента к серверу?

Добрый день. Есть вот такая реализация TCP сервера на сокетах.
Сервер выводит то, что ему посылает клиент. Как можно сделать отображение того, что кто то подключился к серверу?
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;

// Сервер
namespace Server
{
    class Program
    {
        static void Main(string[] args)
        {
            // Инциализация сервера.
            int port = 904;
            DateTime ThToday = DateTime.Now;
            string ThData = ThToday.ToString();

            Socket listenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, port);
            listenerSocket.Bind(ipEnd);
            Console.WriteLine($"[{ThData}] Server Started...");
            Console.WriteLine($"[{ThData}] Waiting for clients..");
            while (true)
            {
                
                listenerSocket.Listen(0);
                Socket clientSocket = listenerSocket.Accept();
                
                Thread clientThread = new Thread(() => ClientConnection(clientSocket));
                clientThread.Start();
            }
            
        }

        static void ClientConnection(Socket clientSocket)
        {
            byte[] buffer = new byte[clientSocket.SendBufferSize];
            int readByte;

            do
            {
                // Вывод полученных данных от клиентов.
                readByte = clientSocket.Receive(buffer);
                byte[] rData = new byte[readByte];
                Array.Copy(buffer, rData, readByte);
                string data = Encoding.ASCII.GetString(rData);
                Console.WriteLine("We got: " +data);
            } while (readByte > 0);

            Console.WriteLine("Client disconnected");
            Console.ReadKey();
        }
    }
}


Может со стороны клиента посылать какую информацию и потом на сервере уже отображать, это входящее сообщение от клиента?
Update.
Решил вывести в консоль надпись "Есть подключение" в этом участке кода
while (true)
            {
                
                listenerSocket.Listen(0);
                Socket clientSocket = listenerSocket.Accept();
                // Вот тут
                Thread clientThread = new Thread(() => ClientConnection(clientSocket));
                clientThread.Start();
            }
  • Вопрос задан
  • 280 просмотров
Подписаться 3 Простой 2 комментария
Решения вопроса 1
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Console.WriteLine(((IPEndPoint)clientSocket.RemoteEndPoint).Address.ToString() + " connected");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы