using System; using System.Collections.Generic; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using YapperServer.Net.IO; namespace YapperServer { internal class Client { public string UserName { get; set; } public Guid UID { get; set; } public TcpClient ClientSocket { get; set; } PacketReader _packetReader { get; set; } public Client(TcpClient client) { ClientSocket = client; UID = Guid.NewGuid(); _packetReader = new PacketReader(ClientSocket.GetStream()); var opcode = _packetReader.ReadByte(); UserName = _packetReader.ReadMessage(); Console.WriteLine($"[{DateTime.Now}]: A kliens csatlakozott a következő username-el: {UserName}"); Task.Run(() => Process()); } void Process() { while (true) { try { var opcode = _packetReader.ReadByte(); switch (opcode) { case 5: var msg = _packetReader.ReadMessage(); Console.WriteLine($"[{DateTime.Now}]: Az üzenet megérkezett! {msg}"); Program.BroadCastMessage($"[{DateTime.Now}]: {msg}"); break; default: break; } } catch (Exception ex) { Console.WriteLine($"{UID} lecsatlakozott."); Console.WriteLine($"[{DateTime.Now}]: Hiba történt a kliens feldolgozása közben: {ex.Message}"); Program.DisconnectMessage(UID.ToString()); ClientSocket.Close(); break; } } } } }