1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án cơ sở mạng đề tài TÌM HIỂU VÀ MÔ PHỎNG CƠ CHẾ GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG MESSAGE QUEUE TRONG WINDOWS CHƯƠNG TRÌNH GAME UNOCHO PHÉP NHIỀU NGƯỜI CHƠI BÀI QUA MẠNG

40 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Và Mô Phỏng Cơ Chế Giao Tiếp Giữa Các Tiến Trình Bằng Message Queue Trong Windows - Lập Trình Mạng: Chương Trình Game UNO Cho Phép Nhiều Người Chơi Bài Qua Mạng
Trường học Đại học Đà Nẵng
Chuyên ngành Kỹ thuật phần mềm, Mạng và Truyền Thông
Thể loại Đồ án cơ sở mạng
Thành phố Đà Nẵng
Định dạng
Số trang 40
Dung lượng 3,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐỒ ÁN CƠ SỞ MẠNG ĐỀ TÀI :HỆ ĐIỀU HÀNH: TÌM HIỂU VÀ MÔ PHỎNG CƠ CHẾ GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG MESSAGE QUEUE TRONG WINDOWS LẬP TRÌNH MẠNG: CHƯƠNG TRÌNH GAME UNOCHO PHÉP NHIỀU NGƯỜI CHƠI BÀI QUA MẠNG

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Bộ môn Mạng & Truyền Thông

ĐỒ ÁN CƠ SỞ MẠNG

ĐỀ TÀI :

HỆ ĐIỀU HÀNH: TÌM HIỂU VÀ MÔ PHỎNG CƠ CHẾ GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG MESSAGE QUEUE TRONG WINDOWS

LẬP TRÌNH MẠNG: CHƯƠNG TRÌNH GAME UNO

CHO PHÉP NHIỀU NGƯỜI CHƠI BÀI QUA MẠNG

Trang 2

3.GIAO TIẾP GIỮA CÁC TIẾN TRÌNH BẰNG MESSAGE QUEUE 6

Trang 3

2.CÁC LUỒNG DỮ LIỆU 13

Trang 4

DANH SÁCH HÌNH ẢNH

Hình 1: Mô hình hoạt động của Message Queue 10

Hình 2: Xử lý nhập dữ liệu ở tiến trình 1 13

Hình 3: Xử lý xuất kết quả ở tiến trình 1 14

Hình 4: Lấy xử lí và trả kết quả ở tiến trình 2 15

Hình 5: Giao diện khởi tạo của 2 tiến trình 16

Hình 6: Thực hiện tiến trình 1 bằng cách nạp dữ liệu từ file txt 17

Hình 7: Thực hiện nạp dữ liệu ở tiến trình một bằng tay 17

Hình 8: File excel input 2 ma trận 1000x1000 18

Hình 9: File excel output ma trận 1000x1000 18

Hình 10: Sơ đồ quan hệ game UNO 26

Hình 11: Cơ sở dữ liệu game UNO 26

Hình 12: Xử lý login 27

Hình 13: Xử lý chơi game 28

Hình 14: Giao diện khời động server 29

Hình 15: Giao diện khởi động client 30

Hình 16: Server nhận và xử lý tin nhắn của client 30

Hình 17: Các client chat với nhau ở khung Chat room 31

Hình 18: Đủ 3 người join game, server xử lí và chia bài (7 lá) 32

Hình 19: Đến lượt chơi của mình, lá bài ở cao hơn là la bài được phép đánh 33

Hình 20: Khi không có lá bài nào hợp lệ, người chơi bốc bài 34

Hình 21: Khi có người hết bài, game kết thúc 35

Hình 22: Xem lại lịch sử kết quả các game trước đó 35

Trang 5

DANH SÁCH TỪ VIẾT TẮT

Từ viết tắt Diễn giải

TCP/IP Transmission Control Protocol/Internet Protocol

Trang 6

2 Mục đích và ý nghĩa của đề tài

Tìm hiều về cơ chế giao tiếp của Message Queue giữa các tiến trình trongWindows, lập trình socket và giao thức TCP/IP Áp dụng các kiến thức trên để thựchiện chương trình xử lí tính toán và chương trình game UNO

Trang 7

PHẦN 1: NGUYÊN LÝ HỆ ĐIỀU HÀNH

ĐỀ TÀI:

Tìm hiểu và mô phỏng cơ chế giao tiếp giữa các tiến trình

bằng Message Queue trong hệ điều hành Windows

Trang 8

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Chương trình và tiến trình là hai khái niệm khác nhau mà ta cần phân biệt.Chương trình là một thực thể thụ động chưa các chỉ thị điều khiển máy tính thi hànhmột tác vụ cụ thể nào đó Khi thực hiện các chỉ thị này, chương trình được chuyểnthành các tiến trình là một thực thể chủ động, với con trỏ lệnh xác định kèm thêmtài nguyên phục vụ cho hoạt động

b Các loại tiến trình

Tiến trình có thể chia thành hai loại: tiến trình tuần tự (MS_DOS) và tiến trìnhsong song (uniprocesser và multiprocesser)

Tiến trình tuần tự: là các tiến trình mà điểm khởi tạo của nó là điểm kết thúc

của tiến trình trước đó

 Tiến trình song song: là các tiến trình mà điểm khởi tạo của tiến trình nàymằn ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi cáctiến trình trước đó chưa kết thúc Trong này tiến trình song song được chia thànhnhiều loại:

- Tiến trình song song độc lập

- Tiến trình song song có quan hệ thông tin

- Tiến trình song song phân cấp

- Tiến trình song song đồng mức

Trang 10

c Các trạng thái của tiến trình

Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thờicủa tiến trình tại thời điếm đó

Trong quá trình sống một tiến trình thay đổi trạng thái do nhiều nguyên nhânnhư: phải chờ một sự kiện nào đó xảy ra ,hay đợi một thao tác nhập xuất hoàn tất,buộc phải dừng hoạt động do hết thời gian xử lý

Tại một thời điểm một tiến trình có thể nhận một trong các trạng thái sau đây

- New: tiến trình đang được tạo lập

- Running: các chỉ thị của tiến trình đang được xử lý.

- Blocked: tiến trình chờ được cấp phát tài nguyên,hay chờ một sự kiện xảy ra.

- Ready: tiến trình chờ được cấp phát CPU để xử lý.

- Waiting: tiến trình phải dừng vì thiếu tài nguyên hay chờ một sự kiện nào đó.

- Halt: tiến trình hoàn tất xử lý

Các trạng thái của tiến trình được biểu diễn qua sơ đồ sau:

Hình 1 Sơ đồ các trạng thái của tiến trình

2 Tổng quan về giao tiếp giữa các tiến trình

Trong hệ thống các tiến trình không phải chạy hoàn toàn độc lập với nhau,nhưng nó có thể giao tiếp với nhau, liên lạc với nhau Chia sẻ thông tin: Nhiều tiếntrình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cungcấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung Hợp táchoàn thành tác vụ: Nhiều tiến trình cùng tham gia thực hiện một công việc Hìnhthức này sẽ đẩy nhanh khả năng xử lý công việc trong hệ thống

Trang 11

 Các cơ chế giao tiếp tiến trình trong Windows: Hệ điều hành Windows cungcấp cho người dùng một số cơ chế giao tiếp giữa các tiến trình như là:

- Giao tiếp bằng tín hiệu (signals handing)

- Giao tiếp bằng đường ống (pipe)

- Giao tiếp bằng hàng đợi thông điệp (message queue)

- Giao tiếp bằng sử dụng vùng nhớ chia sẻ (share memory)

- Giao tiếp bằng đồng bộ tín hiệu semephore

- Giao tiếp trao đổi thông qua socket

3 Giao tiếp giữa các tiến trình bằng Message Queue

Message Queue là một mô hình giao tiếp truyền tin bất động bộ Có nghĩa trao đổigiữa người gửi và người nhận không cần xảy ra đồng thời, tại cùng 1 thời điểm.Người gửi có thể đẩy tin cần gửi vào hàng đợi (queue), và sau đó một số tiến trìnhđộc lập sẽ đẩy tin từ hàng đợi đến người nhận

Hình 1: Mô hình hoạt động của Message Queue

Trang 12

hành Windows Server của họ kể từ Windows 95 Windows Server 2016 vàWindows 10 cũng bao gồm thành phần này Ngoài hỗ trợ nền tảng máy chủ chính,MSMQ đã được tích hợp vào các nền tảng nhúng của Microsoft từ năm 1999 MSMQ chịu trách nhiệm phân phối tin nhắn đáng tin cậy giữa các ứng dụng trong

hệ thống MSMQ đảm bảo phân phối đáng tin cậy Nó cũng hỗ trợ bảo mật và nhắntin dựa trên ưu tiên

MSMQ hỗ trợ cả nhắn tin bền và không bền để đánh đổi giữa hiệu suất hoặc tínhnhất quán bằng cách ghi tin nhắn vào đĩa hoặc chỉ trong RAM Tin nhắn không bềnchỉ có thể đạt được bằng cách gửi tin nhắn nhanh qua hàng đợi không giao dịch.Tìmhiểu và mô phỏng cơ chế giao tiếp giữa các tiến trình bằng Message Queue trong hệđiều hành Windows

Trang 13

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

1 Phân tích bài toán

● Bài toán 1: Xử lí các phép tính toán cơ bản

- Tiến trình 1 thực hiện đọc dữ liệu vào MessageQueue Input từ file txt hoặc

do người dùng nhập Sau đó in ra kết quả từ MessageQueue Output do tiến trình 2trả lại Người dùng nhập vào file txt các chuối biểu thức mỗi chuỗi gồm các kí tự số

và các kí tự +, -, *, /, (, ) Ví dụ : (1+2)*0+35+4/2

- Tiến trình 2 thực hiện đọc dữ liệu từ MessageQueue Input và xử lí biểu thứcsau đó trả kết quả về MessageQueue Output

● Bài toán 2: Xử lí nhân ma trận lớn 1000x1000

- Tiến trình 1 thực hiện đọc dữ liệu vào MessageQueue Input từ file excel với

dữ liệu là hai ma trận Sau đó in ra kết quả từ MessageQueue Output do tiến trình 2trả lại

- Tiến trình 2 thực hiện đọc dữ liệu từ MessageQueue Input và xử lí biểu thứcsau đó trả kết quả về MessageQueue Output

2 Cách áp dụng Message Queue vào chương trình

● Khởi tạo Message Queue:

- Vào phần Computer Management -> Services and Applications

- Chọn Message Queuing, tại đây ta sẽ thấy có 3 loại Message Queue của hệthống bao gồm Outgoing Queues, Private Queues và System Queues, ta có thể tạocác Message Queue ở đây để sử dụng trong chương trình (khuyến cáo không nêntạo Message Queue trong System Queues vì đây là các Queues dành cho hệ thống)

● Sử dụng Message Queue vừa tạo để thực hiện chương trình:

Sau khi khởi tạo 2 Message Queue Input và Output để truyền dữ liệu qua lại giữa 2tiến trình, ta cần phải khai báo chúng trong chương trình để có thể sử dụng bằngcách:

Trang 14

Kích chuột phải vào Message Queue, chọn Properties

Trong tag General ta copy nội dung của ô Label

Vào chương trình, ta khai báo 2 MessageQueue tương ứng với 2 label vừa lấy được

ở trên

Trang 15

3 Sơ đồ thuật toán

Hình 2: Xử lí nhập dữ liệu ở tiến trình 1 Hình 2: Xử lý nhập dữ liệu ở tiến trình 1

Trang 17

Hình 4: Lấy xử lí và trả kết quả ở tiến trình 2

Trang 18

CHƯƠNG 3: KẾT QUẢ TRIỂN KHAI CHƯƠNG TRÌNH

1 Môi trường làm việc

- Chỉ dừng lại ở mức độ xử lý tính toán đơn giản

- Giao diện chưa được đầu tư

3 Kết quả chạy dược của chương trình

Hình 5: Giao diện khởi tạo của 2 tiến trình

Trang 19

Hình 6: Thực hiện tiến trình 1 bằng cách nạp dữ liệu từ file txt

Hình 7: Thực hiện nạp dữ liệu ở tiến trình một bằng tay

Trang 20

Hình 8: File excel input 2 ma trận 1000x1000

Hình 9: File excel output ma trận 1000x1000

Trang 21

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Tuy nhiên, đồ án còn tồn tại các vấn đề như sau:

- Các xử lí tính toán còn đơn giản

- Giao diện chưa được đầu tư

2 Hướng phát triển

Một số số hướng nghiên cứu và phát triển của đề tài như sau:

- Bổ sung thêm các thuật toán để xử lí các bài toán cao hơn

- Đầu tư thêm về giao diện

Trang 22

PHẦN 2: LẬP TRÌNH MẠNG

ĐỀ TÀI

Chương trình game UNO cho phép nhiều người cùng chơi bài qua mạng.

(Lập trình socket sử dụng giao thức TCP/IP)

Trang 23

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1 Trò chơi UNO

a Giới thiệu về game UNO

Uno (/ˈuːnoʊ/; tiếng Ý và tiếng Tây Ban Nha: "một", cách điệu: UNO) là một tròchơi bài của Mỹ được chơi cùng với một bộ bài đặc biệt Nguyên tắc chung của tròchơi được lấy từ trò chơi bài Crazy Eights Trò chơi được Merle Robbins ởReading, một vùng ngoại ô của Cincinnati, bang Ohio, Mỹ, phát triển vào năm

1971

Một bộ bài Uno tiêu chuẩn có 108 lá bài Các lá bài này được chia ra 4 màu: đỏ,vàng, lục, lam; với mỗi tông màu, chúng lại được đánh số lớn dần từ 0 đến 9 Bêncạnh các lá bài đánh số là những lá bài đặc biệt, bao gồm: đổi màu (Wild), đổi màuthêm 4 (Wild draw 4), thêm 2 (Draw 2), đổi lượt (Reverse), cấm (Skip) [1]

Luật chơi: Mỗi lần người chơi chỉ được đánh một quân bài Người đầu tiên đánh

lá bài số với màu sắc đã chọn, có thể đánh các lá đặc biệt khác nhưng phải cùngtông màu hoặc có khả năng đổi màu Những người tiếp theo đánh theo nguyên tắc

"cùng số hoặc cùng màu"

Tính điểm: Sau khi kết thúc một ván, những người chơi còn lại cộng tổng điểmcác lá bài trên tay bản thân lại Ai có số điểm ít nhất là người thắng

Trang 24

2 Giao thức TCP/IP

a Tổng quan về TCP/IP

TCP/IP là tên viết tắt của cụm từ Transmission Control Protocol/Internet

Protocol, là một tập hợp các giao thức (protocol) trao đổi thông tin được sử dụng để

truyền tải và kết nối các thiết bị trong mạng Internet Cụ thể hơn, TCP/IP chỉ rõ cho

chúng ta cách thức đóng gói thông tin (còn được gọi là gói tin), được gửi và nhận bởi các máy tính có kết nối với nhau

Mô hình TCP/IP tiêu chuẩn bao gồm 4 tầng:

- Tầng 1: Tầng liên kết (Network Access)

- Tầng 2: Tầng mạng (Internet)

- Tầng 3: Tầng giao vận (Transport)

- Tầng 4: Tầng ứng dụng (Application)

b Cách thức hoạt động của TCP/IP

Khi truyền dữ liệu , quá trình tiến hành từ tầng trên xuống tầng dưới, qua mỗi tầng

dữ liệu được thêm vào thông tin điều khiển gọi là Header Khi nhận dữ liệu thì quátrình xảy ra ngược lại, dữ liệu được truyền từ tầng dưới lên và qua mỗi tầng thì phầnheader tương ứng sẽ được lấy đi và khi đến tầng trên cùng thì dữ liệu không cònphần header nữa

Ở mỗi tầng khác nhau dữ liệu được truyền vào là khác nhau:

- Tầng ứng dụng: dữ liệu là các luồng được gọi là stream

- Tầng giao vận: đơn vị dữ liệu mà TCP gửi xuống gọi là TCP segment

- Tầng mạng: dữ liệu mà IP gửi xuống tầng dưới gọi là IP Datagram

- Tầng liên kết: dữ liệu được truyền đi gọi là frame

3 Socket

a Socket là gì?

Socket là một điểm cuối (end-point) của liên kết truyền thông hai chiều way communication) giữa hai chương trình chạy trên mạng Các lớp Socket được sửdụng để biểu diễn kết nối giữa client và server, được ràng buộc với một cổng port

Trang 25

(two-(thể hiện là một con số cụ thể) để các tầng TCP (TCP Layer) có thể định danh ứngdụng mà dữ liệu sẽ được gửi tới.

Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được đánh dấu bởihai cổng (port) Thông qua các cổng này một quá trình có thể nhận và gởi dữ liệuvới các quá trình khác

Ngoài số hiệu cổng, hai bên giao tiếp còn phải biết địa chỉ IP của nhau Địa chỉ

IP giúp phân biệt máy tính này với máy tính kia trên mạng TCP/IP Trong khi sốhiệu cổng dùng để phân biệt các quá trình khác nhau trên cùng một máy tính

b Nguyên lí hoạt động

Tại phía server: Thông thường, một chương trình server chạy trên một máy tính

cụ thể, chương trình này có Server Socket, được ràng buộc bởi cổng (Port number)

cụ thể Các chương trình Server chỉ chờ đợi, lắng nghe tại Server Socket các Client

để thực hiện một yêu cầu kết nối

Tại phía client:Các Client biết tên máy của máy tính mà trên đó server đangchạy và số cổng mà server lắng nghe Để thực hiện một yêu cầu kết nối, Client cốgắng tạo ra cuộc gặp với máy chủ trên máy tính của server và cổng Các Client cũngcần phải tự định danh chính nó với server để gắn với một cổng địa phương (localport) sẽ được sử dụng trong suốt quá trình kết nối này (thông thường nó được gánbởi hệ điều hành)

4 Mô hình Client-Server

Mô hình client/server sử dụng socket ở chế độ hướng kết nối TCP có thể được chiathành 4 giai đoạn:

Giai đoạn 1: Server tạo Socket, gán số hiệu cổng và lắng nghe yêu cầu nối

kết Server sẵn sàng phục vụ Client.socket(): Server yêu cầu tạo một socket để cóthể sử dụng các dịch vụ của tầng vận chuyển

- bind(): Server yêu cầu gán số hiệu cổng (port) cho socket

- listen(): Server lắng nghe các yêu cầu nối kết từ các client trên cổng đã đượcgán

Giai đoạn 2: Client tạo Socket, yêu cầu thiết lập một nối kết với Server.

Trang 26

- socket(): Client yêu cầu tạo một socket để có thể sử dụng các dịch vụ củatầng vận chuyển, thông thường hệ thống tự động gán một số hiệu cổng cònrảnh cho socket của Client.

- connect(): Client gởi yêu cầu nối kết đến server có địa chỉ IP và Port xácđịnh

- accept(): Server chấp nhận nối kết của client, khi đó một kênh giao tiếp ảođược hình thành, Client và server có thể trao đổi thông tin với nhau thôngqua kênh ảo này

Giai đoạn 3: Trao đổi thông tin giữa Client và Server.

- Sau khi chấp nhận yêu cầu nối kết, thông thường server thực hiện lệnh read()

và nghẽn cho đến khi có thông điệp yêu cầu (Request Message) từ clientgởi đến

- Server phân tích và thực thi yêu cầu Kết quả sẽ được gởi về client bằng lệnhwrite()

- Sau khi gởi yêu cầu bằng lệnh write(), client chờ nhận thông điệp kết quả(ReplyMessage) từ server bằng lệnh read()

Giai đoạn 4: Kết thúc phiên làm việc.

- Các câu lệnh read(), write() có thể được thưc hiện nhiều lần (ký hiệubằng hình ellipse)

- Kênh ảo sẽ bị xóa khi Server hoặc Client đóng socket bằng lệnh close()

Trang 27

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

1 Các chức năng game

- Cho phép các client kết nối với server để tham gia vào game

- Nếu game đã đủ người chơi, client sẽ là người xem

- Nếu game chưa đủ người chơi, client sẽ vào vị trí chơi game

- Cho phép nhiều máy chơi game với nhau

- Cho phép chat nhóm (cả người chơi và người xem)

- Lưu lại lịch sử các trận đấu và có thể xem lại kết quả

2 Các luồng dữ liệu

● Dữ liệu gửi từ server về client:

- Dữ liệu chia các thẻ bài đầu game (lần đầu chia 7 thẻ)

- Dữ liệu yêu cầu thực hiện lượt chơi

- Dữ liệu các thẻ bài mỗi lần người chơi bị phạt

- Dữ liệu thẻ bài của người chơi khác đã đánh

- Dữ liệu thông báo người chơi khác đã “UNO” (còn 1 quân bài)

- Dữ liệu tin nhắn của các client khác

● Từ client gửi lên server:

- Dữ liệu đăng kí user

- Dữ liệu đăng nhập

- Dữ liệu đăng kí chơi game

- Dữ liệu thẻ bài mà người chơi đánh

- Dữ liệu thông báo đã “UNO” (còn 1 quân bài)

- Dữ liệu gửi đến nhóm chat

Ngày đăng: 12/06/2023, 05:23

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w