public virtual void Dispose()
 {
     WorkerCancelToken.Cancel();
     WorkerCancelToken = null;
     ServerWorker?.Dispose();
     Socket?.Dispose();
 }