using Microsoft.AspNetCore.Authentication.OAuth.Claims; using System.Net; using System.Net.Sockets; using System.Text; using Serilog; using Microsoft.AspNetCore.Http; using System.Linq.Expressions; namespace service { public class Client { private readonly Serilog.ILogger _logger; private IPEndPoint _ipEndPoint; private TcpClient _tcpClient; private NetworkStream _stream; private byte[] _buffer; private int _bufferSize; public Client(ref byte[] buffer, int bufferSize, Serilog.ILogger logger) { _logger = logger; _ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888); _tcpClient = new TcpClient(); _tcpClient.Connect(_ipEndPoint); _stream = _tcpClient.GetStream(); _buffer = buffer; _bufferSize = bufferSize; } public void SendMessageToServer() { try { _stream.Write(_buffer, 0, _bufferSize); } catch(Exception ex) { _logger.Error("{0}", ex.Message); } } public byte[]? GetResponseFromServer() { byte[] buffer = new byte[1024]; try { using (MemoryStream memoryStream = new MemoryStream()) { int bytesRead = _stream.Read(buffer, 0, 1024); memoryStream.Write(buffer, 0, bytesRead); return memoryStream.ToArray(); } } catch(Exception ex) { _logger.Error("{0}", ex.Message); return null; } } } }