YapperDesktop/Yapper/Net/Server.cs
2025-02-23 20:09:12 +01:00

60 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using YapperClient.Net.IO;
namespace YapperClient.Net
{
class Server
{
TcpClient _client;
public PacketReader PacketReader;
public event Action connectedEvent;
public Server() {
_client = new TcpClient();
}
public void ConnectToServer(string userName)
{
if (!_client.Connected)
{
_client.Connect("127.0.0.1", 7891);
PacketReader = new PacketReader(_client.GetStream());
if (!string.IsNullOrEmpty(userName))
{
var connectPacket = new PacketBuilder();
connectPacket.WriteOpCode(0);
connectPacket.WriteString(userName);
_client.Client.Send(connectPacket.GetPacketBytes());
}
ReadPackets();
}
}
private void ReadPackets()
{
Task.Run(() => {
while (true)
{
var opcode = PacketReader.ReadByte();
switch (opcode)
{
case 1:
connectedEvent?.Invoke();
break;
default:
Console.WriteLine("ah yes ...");
break;
}
}
});
}
}
}