Добрый день. Есть вот такая реализация 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();
}