using Helpers;
using Microsoft.Extensions.Hosting;
using System.Net;
using System.Net.Sockets;
namespace MemoryStreamApp
{
public class PacketReaderServer : IHostedService
{
public async Task StartAsync(CancellationToken cancellationToken)
{
TcpListener _tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 7891);
_tcpListener.Start();
PacketReader _packetReader;
while (!cancellationToken.IsCancellationRequested)
{
NetworkStream networkStream = _tcpListener.AcceptTcpClient().GetStream();
_packetReader = new PacketReader(networkStream);
int opCode = _packetReader.ReadOpCode();
Console.WriteLine(string.Format("{0} : Opcode Found With Value {1}", DateTime.Now, opCode));
int nextchunksize = _packetReader.ReadChunkSize();
Console.WriteLine(string.Format("{0} : Chunk Found With Value {1}", DateTime.Now, nextchunksize));
string message = _packetReader.ReadMessage(nextchunksize);
Console.WriteLine(string.Format("{0} : Message Found With Value {1}", DateTime.Now, message));
await Task.Delay(1000);
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}
}