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,