Chươn g3 Khả năng kết nối mạng bằng .Net CompactFramework
3.5 Kỹ thuật Multicasting với gói tin UDP
UDPClient có thể dễ dàng cấu hình để broadcast tới nhiều địa chỉ IP hoặc tới gói nhận từ
nhiều multicast địa chỉ IP. Từ một multicast địa chỉ IP được thao tác bằng một máy chủ, cái này duy trì một danh sách multicast subscribers. Khi một gói được gửi tới một multicast IP address, máy chủ gửi một bản sao của gói tin tới địa chỉ IP của nhiều máy khách, máy đã được tán thành.
Gửi gói Multicast
Để gửi gói UDP tới nhiều một multicast địa chỉ IP, không cần chỉ rõ hành động được yêu cầu. Đơn giản là gửi gói tin như trong ví dụ “Viết mã cho UDP client”.
Nhận gói Multicast
Để nhận gói multicast, trước tiên chúng ta phải đồng ý cùng máy chủ, máy chủ được thao tác multicast địa chỉ IP. Chúng ta có đồng ý để multicast địa chỉ IP, chúng ta có thể lắng nghe gói tin từ multicast địa chỉ IP trong cách như là cho bất kỳ địa chỉ khác. Khi một ai đó gửi một gói tới multicast địa chỉ IP, máy chủ trả lại tới tất cả mọi người trên danh sách đồng ý. Để đồng ý một multicast địa chỉ IP, làm theo các bước sau:
Bước 1: Tạo một IPAddress, đây là một điểm để multicast địa chỉ IP. Bước 2: Gọi UdpClient.JoinMultiCastGroup()
Cố gắng nhận thông tin từ multicast địa chỉ IP sẽ nhận gói tin trở lại từ multicast máy chủ. Đây là thành phần nạp chồng JoinMultiCastGroup hỗ trợ trên .NET Compact Framework:
- JoinMultiCastGroup(IPAddress multicastAddr) Kết nối một nhóm multicast ở multicastAddr.
- JoinMultiCastGroup(IPAddress multicastAddr, int maxHops) Kết nối một
nhóm multicast tại multicastAddr nhưng chỉ nhận gói mà được tao ra bởi maxHops. Ví dụ:
IPAddress l_multicastAddress = new IPAddress("172.68.0.22"); // Only receive multicast packets that have traveled
// for 40 or less hops
l_UDPClient.JoinMulticastGroup(l_multicastAddress, 40);
Để không tán thành từ một multicast địa chỉ IP, gọi UDPClient.DropMulticastGroup() như sau:
l_UDPClient.DropMulticastGroup(l_multicastAddress);