Chơng IV. Xây dựng ứng dụng truyền tệp
.III.1.2. Cài đặt chơng trình
dụng th viện socket, giao thức lớp dới là giao thức hớng kết nối TCP. Tiến trình server hoạt động theo kiểu đồng thời (concurrent), server “nghe” ở cổng 1998, khi có một tiến trình client kết nối đến, server nhận
Server Client
Gửi yêu cầu
truyền dữ liệu Nhận lệnh
Nhận và thông báo với người sử dụng số byte
truyền
Nhận dữ liệu ở kênh dữ liệu tới khi gói tin có độ
dài là 0
Gửi thông báo chấp nhận
Thông báo số byte đã nhận
Gửi lần lượt các gói tin kết thúc bởi một gói có
nối lệnh để truyền lệnh và một kết nối dữ liệu để truyền các khối dữ liệu giữa client và server.
Phần server chạy trên các máy chủ Unix, Windows NT phục vụ cho phần client chạy trên các máy Dos, Windows và Unix. Chơng trình hoạt động gần giống FTP nhng có một số tính năng nâng cao:
• Thực hiện lệnh từ xa với EXEC: Chơng trình server nhận lệnh gửi tới từ client, thực hiện lệnh đó và gửi trả kết quả vào kênh truyền, chơng trình client đọc và hiển thị kết quả đó trên màn hình của ngời sử dụng.
• Thực hiện lệnh của hệ điêu hành trên máy trạm !CMD: Một số lệnh của hệ điều hành có thể đợc thực hiện trên máy trạm, chúng đợc tiến trình client giải quyết bằng cách gọi chơng trình thông dịch của hệ điều hành.
• Khả năng thay đổi kích thớc bộ đệm với BUFSIZ kích thớc của bộ đệm có thể đợc thay đổi bằng cách thay đổi biến môi trờng chứa kích thớc bộ đệm. Việc này làm tăng năng suất của việc truyền thông tin trên mạng.
• Một số thao tác với th mục trên máy chủ nh tạo th mục, xoá th mục đợc thực hiện bằng cách gọi các lệnh của hệ điều hành Unix hoặc những hàm mức thấp trong th viện của C.
• Chơng trình còn cung cấp một số lệnh làm việc trực tiếp với tệp nh
OPEN, LSEEK, READ, WRITE... những lệnh này sử dụng th những lời gọi mức thấp của hệ thống.
Sau đây là những lệnh đ cài đặt trên serverã
Lệnh Mô tả
EXEC command [option] Chạy một lệnh Unix
USER username [PASS Đăng nhập hệ thống 79
password]
PASSWD password Nhập password
CHPWD newpassword Đổi password
PORT portnumber Đăng ký một cổng truyền dữ liệu
ABORT Loại bỏ quá trình truyền
PWD Lệnh đổi th mục
LIST [option] [directory] Lệnh xem th mục
CHDIR [directory] Lệnh đổi th mục
MKDIR directory [mode] Tạo th mục mới
RMDIR directory Xoá th mục
UNLINK filename Xoá tệp
OPEN path openflag [mode] Mở tệp
LSEEK fildes offset whence Chuyển con trỏ tệp
READ fildes nbytes Đọc từ tệp
WRITE fildes nbytes Ghi tệp
LOCKF fildes mode size Khoá tệp
CLOSE filedes Đóng tệp
TMPNAM [path[prefix]] Tạo một tệp tạm thời
PUT filename Truyền tệp lên máy chủ
APPEND filename Mở tệp để append
GET filename Lấy tệp từ máy chủ
HELP Trợ giúp
UNIX Hoạt động ở mode Unix
TNET Hoạt động ở mode Tnet
QUIT Thoát
UMASK [mode] Đặt mặt nạ mode cho file truyền
FMODE filename Xem mode của file
FSIZE filename Xem độ dài của file
BUFSIZ size_of_buffer Đặt lại kích thớc cho bộ đệm
REXEC host user passwd
command
Chạy một lệnh từ xa
Phần client giao tiếp với ngời sử dụng, nhận lệnh, phân tích lệnh, xử lý hoặc gửi cho server, nhận và trả kết quả lại cho ngời sử dụng.
.III.2. Một số vấn đề nảy sinh trong quá trình thực hiện và cách giải quyết