private void _CloseConnectionToClient(_TcpClosePacket packet = null) { if (packet != null) { ULogger.Info($"<{serviceName}> Close connection to client."); Send(new _TcpClosePacket()); } else { ULogger.Info($"<{serviceName}> Connection to client is closed."); } _client.Dispose(); _client = null; _listener.Start(); Disconnected.Trigger(); }
protected override void _Shutdown() { if (_client != null) { try { Send(new _TcpClosePacket()); } catch (Exception) { // ignored } _client.Dispose(); _client = null; } CancelInvoke(nameof(_CheckConnectionState)); _packetForwardService.UnbindReceiver <_TcpClosePacket> ( _HandleConnectionClosedByRemote); base._Shutdown(); Disconnected.Trigger(); }