Xây dựng chương trình Server

Một phần của tài liệu Xây dựng dịch vụ tính toán phân bố (distributed computing environment DCE) (Trang 26 - 30)

2 Cơ SỞ LÝ THUYẾT

2.3.3Xâ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

Một phần của tài liệu Xây dựng dịch vụ tính toán phân bố (distributed computing environment DCE) (Trang 26 - 30)