Chương 4: CÀI ĐẶT CHƯƠNG TRÌNH
4.2.3. Khối giao tiếp ngang hàng.
Lớp FileServer
Khi một điểm nút đăng nhập vào mạng cũng là lúc một tiểu trình mới được tạo ra với nhiệm vụ lắng nghe các kết nối đến từ các điểm nút khác. Một thể hiện của lớp FileServer sẽ được sinh ra và liên tục lắng nghe ở cổng 3001. Khi chấp nhận yêu cầu kết nối mới, một tiểu trình sẽ được tạo ra từ một thể hiện của lớp FileServerThread để trực tiếp liên lạc với phía bên kia.
Nhiệm vụ của lớp này là nhận yêu cầu từ một điểm nút khác liên quan đến việc tải tài liệu về. Sau khi tiến hành kiểm tra tính tồn tại và tính chia sẻ của tài liệu, quá trình tải tài liệu vềđiểm nút từ xa sẽđược bắt đầu.
Z Lớp FilePeerThread
Khi người dùng nhấn vào nút Download trên cửa sổ tìm kiếm, một tiểu trình mới sẽđược tạo ra thông qua một thể hiện của lớp FilePeerThread. Nhiệm vụ
của tiểu trình này là thiết lập kết nối và chuyển yêu cầu tải về tới điểm nút hiện
đang chia sẻ tài liệu. Sau đó quá trình tải tài liệu sẽ được bắt đầu với một bên là FileServerThread và một bên là FilePeerThread.
Khuôn dạng thông điệp được trao đổi giữa FilePeerThread và FileServerThread được định nghĩa thông qua việc sử dụng các hằng số trong Interface Protocol:
Hằng số DOWNLOAD: FilePeerThread gửi thông điệp bắt đầu bằng hằng số DOWNLOAD cho FileServerThread, tiếp theo sau là đường dẫn của của file cần tải về trên điểm nút chia sẻ.
Hằng số RESPONSE: Mở đầu cho thông điệp gửi từ FileServerThread về
FilePeerThread, tiếp theo sau là nội dung của file yêu cầu.
Hằng số UNVAILABLE: Khi đường dẫn của file yêu cầu không hợp lệ
hoặc trỏ đến một file đã dừng chia sẻ thì FileServerThread sẽ gửi lại cho FilePeerThread một thông điệp báo lỗi bắt đầu bằng hằng số này.