CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 466

466
Chương 11: Lập trình mạng

}

fileStop = true;

Console.WriteLine(ID + ": Disconnect request received.");

} else {

Console.WriteLine(ID + ": Could not complete connection.");

}

// Đóng kết nối.

client.Close();

Console.WriteLine(ID + ": Client connection closed.");

Console.ReadLine();

}

private void StreamData(IAsyncResult asyncResult) {

// Hủy bỏ nếu client ngừng kết nối.

if (fileStop == true) {

fileStop = false;

return;

}

if (asyncResult != null) {

// Một khối đã được ghi một cách bất đồng bộ.

networkStream.EndWrite(asyncResult);

}

// Lấy khối kế tiếp từ file.

int bytesRead = fileStream.Read(buffer, 0, buffer.Length);

// Nếu không đọc được byte nào, stream đã đến cuối file.

if (bytesRead > 0) {

Console.WriteLine("Streaming new block.");

// Ghi khối kế tiếp ra network stream.

networkStream.BeginWrite(buffer, 0, buffer.Length,