• Thứ Ba, 17/07/2007 09:57 (GMT+7)

    Lập trình Java dựa vào lớp TCP SOCKET

    Câu hỏi :

    Xin hướng dẫn lập chương trình Java dựa vào lớp TCP SOCKET sao cho client có thể yêu cầu download file và server sẽ gởi nội dung file được yêu cầu về client, client và server nối trực tiếp với nhau.



    Trả lời :

    Yêu cầu của bạn đã được giải quyết bởi ứng dụng chuẩn của Internet tên là FTP (File Transfer Protocol), ứng dụng này cho phép người dùng ngồi trên máy của mình có thể nối kết đến máy server, đăng ký account sử dụng rồi truy xuất hệ thống file do máy server cung cấp, người dùng có thể duyệt hệ thống file, download hay upload file từ/tới server. Việc hiện thực ứng dụng FTP đầy đủ (gồm 2 module chức năng là FTP server và FTP client) đòi hỏi nhiều công sức và thời gian lập trình, do đó chúng tôi sẽ trình bày cho bạn 1 ứng dụng đơn giản, nó cho phép client gởi yêu cầu download file do server quản lý rồi chờ nhận nội dung gởi về từ server.

    Điều thiết yếu nhất để viết 1 ứng dụng mạng là định nghĩa giao thức làm việc của 2 module chức năng client và server, ở đây chúng tôi đề nghị giao thức tối thiểu gồm chỉ 1 thông báo request gởi từ client về server và 1 thông báo reply được gởi từ server về client. Định dạng cụ thể cho thông báo request như sau:

     download <tênfile> \r\n
     và định dạng thông báo reply như sau:
     [0|1] size \r\n<chuỗi byte nội dung file>
     Ở đây chúng tôi hạn chế server chỉ quản lý các file trong 1 thư mục phẳng có tên là "c:\downfiles", do đó thông số <tênfile> trong thông báo request của client chỉ chứa tên chính xác của file cần download chứ không cần miêu tả đường dẫn đầy đủ của file.

     Chi tiết về qui trình viết từng module client và server cũng như Project JBuilder chứa 2 module này được đặt trong file MicroFTP.zip. Bạn hãy liên hệ với tòa soạn TGVT để copy file này về rồi tìm hiểu chi tiết.
     

    Chuyên mục: Lập trình