467
Chương 11: Lập trình mạng
new AsyncCallback(StreamData), null);
} else {
// Kết thúc thao tác.
Console.WriteLine("File streaming complete.");
fileStream.Close();
}
}
}
Bạn có thể sử dụng một mẫu tương tự để đọc dữ liệu một cách bất đồng bộ phía client.
13.
13.
Giao ti p b ng UDP
ế ằ
Giao ti p b ng UDP
ế ằ
Bạn cần gửi dữ liệu giữa hai máy tính trên một network bằng User Datagram
Protocol (UDP) stream.
Sử dụng lớp
System.Net.Sockets.UdpClient
, và sử dụng hai tiểu trình: một để gửi
dữ liệu và một để nhận dữ liệu.
UDP là một giao thức phi kết nối, không có bất kỳ điều khiển dòng chảy hay kiểm tra lỗi nào.
Khác với TCP, UDP sẽ không được sử dụng ở những nơi cần đến giao tiếp đáng tin cậy. Tuy
nhiên, vì chi phí thấp hơn, UDP thường được sử dụng cho các ứng dụng "chatty", tại đó chấp
nhận mất một vài thông điệp. Ví dụ, giả sử bạn muốn tạo một network mà trong đó, các client
gửi thông tin về nhiệt độ hiện thời tại vị trí của chúng đến một server mỗi vài phút. Bạn có thể
sử dụng UDP trong trường hợp này vì tần số giao tiếp cao và thiệt hại do mất packet là không
đáng kể (vì server có thể tiếp tục sử dụng nhiệt độ nhận được cuối cùng).
Ứng dụng dưới đây sử dụng hai tiểu trình: một để nhận thông điệp và một để gửi thông điệp.
Để thử nghiệm ứng dụng này, hãy nạp hai thể hiện cùng một lúc. Trên máy tính A, cho biết
địa chỉ IP của máy tính B. Trên máy tính B, cho biết địa chỉ IP của máy tính A. Theo đó, bạn
có thể gửi qua lại thông điệp dạng text (bạn có thể mô phỏng thử nghiệm này trên một máy
đơn bằng cách sử dụng hai port khác nhau và địa chỉ loopback).
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
public class UdpTest {
private static int localPort;
private static void Main() {