2 Cơ SỞ LÝ THUYẾT
2.3.3 Xây dựng chương trình Server
Mỗi chương trình Server khi được lập trình sẽ tuân theo thuật giải sau : Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client. Vào một
vòng lặp vô tận làm các công việc sau : Nhận yêu cầu của Client. Thực thi yêu cầu. Gởi trả kết quả về cho Client.
Tuy nhiên với các loại Server khác nhau chúng ta sẽ có thuật giải cụ thể của
từng loại dựa trên thuật giải vừa nêu trên.
2.3.3.1 Thuật giải với Interactive, Connection-Oriented Server
Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client. Đặt Socket vào chế độ thụ động (sẳn sàng nhận kết nôi của Client). Lấy yêu cầu kết nôi tiếp theo trong hàng đợi, tạo ra một Socket mới cho sự kết nôi của Client và Server . Nhận yêu cầu của Client, thực thi yêu cầu, gởi trả kết quả về cho Client.
Đóng cầu nối khi giao tiếp của Client và Server kết thúc và quay về bước ba để nhận yêu cầu mới.
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM
Server
Interactive, Connectionless Server
2.3.3.3 Thuật giải với Concurrent, Connectionless Server
Công việc của process điều khiển(Master process):
Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client. Để cho
Socket ở trạng thái sẩn sàng nhận yêu cầu. Lặp lại việc gọi hàm recvfrom() để nhận yêu cầu tiếp theo của Client. Khi có yêu cầu thì nó sẽ fork() ra process con (Slave process) để phục vụ yêu cầu của Client.
Nhận yêu cầu của Client từ process cha và quyền truy xuất Socket . Thực
thi yêu cầu, gởi trả kết quả về cho Client dùng hàm sendtoQ. Kết thúc process này
sau khi đã hoàn tất một yêu cầu của Client.
23.3.4 Thuật giải với Concurrent, Connection-Oriented Server
Công việc của process điều khiển(Master process)
Tạo Socket và gán nó vào port nơi mà nó nhận yêu cầu của Client. Để cho
Socket ở trạng thái chưa kết nối. Đặt Socket vào chế độ thụ động (sẳn sàng nhận
kết nôi của Client). Lặp lại việc gọi hàm accepto để nhận yêu cầu kết nôi của Client. Khi có yêu cầu thì nó sẽ fork() ra process con (Slave process) để phục vụ
yêu cầu của Client.
Công việc của process xử lý yêu cầu (Slave process)
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM
Concurrent, Connection-Oriented Server