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

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);

}