using System;
using System.IO;
namespace WIDESEAWCS_Tasks.SocketServer
{
public partial class TcpSocketServer
{
///
/// 释放服务器资源
///
///
/// 停止监听、取消所有客户端任务、关闭监听器、释放信号量。
/// 调用此方法后,服务器无法再次使用。
///
public void Dispose()
{
// 取消所有操作
_cts?.Cancel();
// 停止监听器
_listener?.Stop();
// 释放取消令牌源
_cts?.Dispose();
// 释放所有客户端信号量
foreach (var sem in _clientLocks.Values) { try { sem.Dispose(); } catch { } }
_clientLocks.Clear();
// 记录停止日志
Log($"[{DateTime.Now}] TcpSocketServer stopped");
}
}
}