M ở đầ u 5
3.5.1. Lớp WebcamServer 34
Hình 16: Thuộc tính và các phương thức của lớp WebcamServer
Lớp WebcamServer (Hình 16) là lớp duy nhất của ứng dụng truyền video multicast dựa trên nền Chord tại máy chủ. WebcamServer chịu trách nhiệm tạo luồng dữ liệu video thời gian thực. Cụ thể WebcamServer sẽ định kỳ bắt hình ảnh thu được từ webcam, sau
đó tiến hành gửi broadcast trên toàn mạng Chord.
Một số phương thức chính
//Hàm khởi tạo //Tham số:
// localNode: một thể hiện của lớp Node
public WebcamServer(Node localNode)
// Bắt lấy hình ảnh từ webcam
// Hàm trả về hình ảnh dưới dạng chuỗi byte
// Phân mảnh hình ảnh thu được ở hàm captureImage() thành những phần nhỏ
// Giá trị trả về là danh sách các phần mảnh của hình ảnh
public List<byte[]> fragmentImage(byte[] image)
// Đóng gói gói tin tầng ứng dụng với các trường khác nhau // Tham số:
// limitID: giới hạn chuyển tiếp dành cho node nhận // imageID: số thứ tự của bức ảnh
// numberOfPart: số phần bị phân ra từ bức ảnh gốc // partID: số thứ tự của phân mảnh
// fragment: dữ liệu của một phần bức ảnh
// Hàm trả về gói tin tầng ứng dụng dưới dạng chuỗi byte
public byte[] PacketToByte(long limitID, short imageID, short
numberOfPart, short partID, byte[] fragment) // Hàm khởi tạo broadcast
// Tham số:
// image: chuỗi byte dữ liệu của hình ảnh
// Hàm sử dụng thuật toán truyền broadcast để gửi hình ảnh cho các máy khách
public void SendBroadcastImage(byte[] image)
// Gửi một gói tin tầng ứng dụng cho một node // Tham số:
// desIP: IP của node nhận
// limitID: giới hạn chuyển tiếp dành cho node nhận // iID: số thứ tự của bức ảnh
// part: dữ liệu của một phần bức ảnh // partID: số thứ tự của phân mảnh
// numberOfPart: số phần bị phân ra từ bức ảnh gốc
public void send(string desIP, long limitID,short iID, byte[] part,