61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|