**服務端**:`TcpListener` → `AcceptTcpClientAsync` → 每客戶端啟動 `Task` 循環 `ReadAsync`/`WriteAsync`。
**客戶端**:`TcpClient` → `ConnectAsync` → 兩條 Task 分別處理發送 (Console.ReadLine) 與接收 (網絡流讀取)。
var listener = new TcpListener(IPAddress.Any, 8888);
listener.Start();
while (true) {
var client = await listener.AcceptTcpClientAsync();
_ = Task.Run(() => HandleClient(client)); // 火力全開
}
async Task HandleClient(TcpClient client) {
using (var stream = client.GetStream())
using (var reader = new StreamReader(stream, Encoding.UTF8))
using (var writer = new StreamWriter(stream, Encoding.UTF8) { AutoFlush = true }) {
string line;
while ((line = await reader.ReadLineAsync()) != null) {
Broadcast(line); // 廣播給所有客戶端
}
}
}