public XFireClient(TcpClient tcpClient, IXFireClientManager clientManager, ILogger logger, ITcpServer.OnReceiveHandler receiveHandler, ITcpServer.OnDisconnectionHandler disconnectionHandler) { _receiveHandler = receiveHandler; _disconnectionHandler = disconnectionHandler; _clientManager = clientManager; _lock = new object(); _tcpClient = tcpClient; _tcpClient.ReceiveTimeout = 300; // ms _connected = true; Logger = logger; // TODO: be able to use unique salts Salt = "4dc383ea21bf4bca83ea5040cb10da62"; SessionId = Guid.NewGuid(); _clientWaitEvent = new AutoResetEvent(false); _lastReceivedFrom = DateTime.UtcNow; Logger.LogInformation($"Client connected {_tcpClient.Client.RemoteEndPoint} and assigned session id {SessionId}"); ThreadPool.QueueUserWorkItem(ClientThreadWorker); }
public PFireServer(IPFireDatabase pFireDatabase, IXFireClientManager xFireClientManager, ITcpServer server) { Database = pFireDatabase; _clientManager = xFireClientManager; _server = server; _server.OnReceive += HandleRequest; _server.OnConnection += HandleNewConnection; _server.OnDisconnection += OnDisconnection; }
public PFireServer(string baseDirectory, IPEndPoint endPoint = null) { Database = new PFireDatabase(baseDirectory); _clientManager = new XFileClientManager(); _server = new TcpServer(endPoint ?? new IPEndPoint(IPAddress.Any, 25999), _clientManager); _server.OnReceive += HandleRequest; _server.OnConnection += HandleNewConnection; _server.OnDisconnection += OnDisconnection; }
public TcpServer(TcpListener listener, IXFireClientManager clientManager, ILogger <TcpServer> logger) { _listener = listener; _clientManager = clientManager; _logger = logger; }
public TcpServer(IPEndPoint endPoint, IXFireClientManager clientManager) { _listener = new TcpListener(endPoint); _clientManager = clientManager; }