465
Chương 11: Lập trình mạng
public ClientHandler(TcpClient client, string ID) {
this.buffer = new byte[bufferSize];
this.client = client;
this.ID = ID;
}
public void Start() {
// Thu lấy network stream.
networkStream = client.GetStream();
// Tạo các đối tượng dùng để gửi và nhận text.
BinaryWriter w = new BinaryWriter(networkStream);
BinaryReader r = new BinaryReader(networkStream);
if (r.ReadString() == ClientMessages.RequestConnect) {
w.Write(ServerMessages.AcknowledgeOK);
Console.WriteLine(ID + ": Connection completed.");
string message = "";
while (message != ClientMessages.Disconnect) {
message = r.ReadString();
if (message == ClientMessages.RequestData) {
// Tên file có thể do client cung cấp, nhưng
// trong ví dụ này, file thử nghiệm là mã cứng.
fileStream =
new FileStream("test.bin", FileMode.Open);
// Gửi kích thước file.
w.Write(fileStream.Length.ToString());
// Khởi chạy thao tác bất đồng bộ.
StreamData(null);
}