(Tiểu luận) đồ án môn học lập trình mạng xây dựng trò chơi cờ vua qua mạng lan

24 27 0
(Tiểu luận) đồ án môn học lập trình mạng xây dựng trò chơi cờ vua qua mạng lan

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT HÀN KHOA KHOA HỌC MÁY TÍNH ĐỒ ÁN MƠN HỌC LẬP TRÌNH MẠNG XÂY DỰNG TRỊ CHƠI CỜ VUA QUA MẠNG LAN Sinh viên thực hiện: NGUYỄN SĨ THIỆN LÊ XUÂN HƯỚNG Lớp: 19IT4 Giảng viên hướng dẫn: Th.S NGUYỄN THANH CẨM Đà nẵng, tháng 11 năm 2021 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG VÀ TRUYỀN THƠNG VIỆT HÀN ĐỒ ÁN MƠN HỌC LẬP TRÌNH MẠNG XÂY DỰNG TRÒ CHƠI CỜ VUA QUA MẠNG LAN Đà Nẵng, tháng 11, năm 2021 NHẬN XÉT (Của giảng viên hướng dẫn) ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Chữ ký giáo viên hướng dẫn LỜI CẢM ƠN Chúng em xin gửi lời cảm ơn chân thành sâu sắc đến thầy cô đặc biệt giảng viên Th.S Nguyễn Thanh Cẩm thời gian qua giúp đỡ chúng em việc hồn thành báo cáo đồ án mơn học Lập trình mạng Mặc dù gặp nhiều khó khăn việc hoàn thành đồ án này, nhiên chúng em cố gắng để thực hoàn chỉnh báo cáo Tuy nhiên, chưa có đầy đủ kỹ kinh nghiệm để hoàn thành báo cáo đồ án nên chúng em nhiều thiếu sót Rất mong đóng góp ý kiến thầy để báo cáo đồ án hồn thiện hơn, em xin chân thành cảm ơn Em xin trân trọng cảm ơn ! MỤC LỤC DANH MỤC HÌNH VẼ i CHƯƠNG CƠ SỞ LÝ THUYẾT … 1.1 Tổng quan lập trình mạng 1.2 Tổng quan TCP/IP 1.2.1 Bộ giao thức liên mạng (IP Protocol) 1.2.2 Bộ giao thức điều khiển giao vận (TCP Protocol) 1.3 Lập trình socket 1.3.1 Giới thiệu socket 1.3.2 Số hiệu cổng socket 1.3.3 Các chế độ giao tiếp CHƯƠNG PHÂN TÍCH THIẾT KẾ HỆ THỐNG… .8 2.1 Phân tích yêu cầu toán 2.2 Mơ hình truyền tin client/server hướng tới việc cung cấp dịch vụ 2.2.1 Xây dựng chương trình 10 2.2.2 Sơ đồ hoạt động 11 2.2.3 Môi trường phát triển 11 CHƯƠNG TRIỂN KHAI XÂY DỰNG … 13 3.1 Kết demo chương trình 13 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 16 Kết luận 16 Hướng phát triển 16 DANH MỤC VÀ TÀI LIỆU THAM KHẢO 17 DANH MỤC HÌNH VẼ Hình 1.1 – Mơ hình lập trình mạng Hình 1.2 – Cấu trúc gói tin IP Hình 1.3 – Mơ hình client - server Hình1.4 – Số hiệu cổng Hình 1.5 – Kiến trúc hệ thống TCP/IP Hình 2.1 – Tiến trình gữi nhận message Hình 2.2 – Sơ đồ hoạt động trị chơi cờ vua CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan lập trình mạng Mạng máy tính phát triển nhằm mục đích nghiên cứu phân tích q trình giao tiếp Nó hỗ trợ giao tiếp hệ thống máy tính với để trao đổi thơng tin tài nguyên Cho nên, để thực việc kết nối mạng bạn cần phải có mạng riêng Khi nói đến phát triển ứng dụng phần mềm, đa số người ta muốn nói đến chương trình có khả làm việc mơi trường mạng tích hợp nói chung mạng máy tính nói riêng Từ chương trình kế tốn doanh nghiệp, quản lý, trị chơi, điều khiển… Vấn đề lập trình mạng liên quan đến nhiều lĩnh vực kiến thức khác Từ kiến thức sử dụng ngơn ngữ lập trình, phân tích thiết kế hệ thống, kiến thức hệ thống mạng, mơ hình xây dựng chương trình ứng dụng mạng, kiến thức sở liệu… kiến thức truyền thông, kiến thức lĩnh vực liên quan khác mạng điện thoại di động, PSTN, hệ thống GPS, mạng BlueTooth, WUSB, mạng sensor… chương trình ứng dụng mạng Hình 1.1 – Mơ hình lập trình mạng 1.2 Tổng quan TCP/IP 1.2.1 Bộ giao thức liên mạng (IP Protocol) - Giao thức liên mạng, thường gọi giao thức IP (Internet Protocol) giao thức mạng hoạt động tầng mơ hình OSI, qui định cách thức định địa máy tính cách thức chuyển tải gói tin qua liên mạng IP đặc tả bảng báo cáo kỹ thuật có tên RFC (Request For Comments) mã số 791 giao thức chủ yếu Bộ giao thức liên mạng Cùng với giao thức TCP, IP trở thành trái tim giao thức Internet - IP có hai chức : cung cấp dịch vụ truyền tải dạng khơng nối kết để chuyển tải gói tin qua liên mạng phân mãnh tập hợp lại gói tin để hỗ trợ cho tầng liên kết liệu với kích thước đơn vị truyền liệu khác - Cấu trúc gói tin IP: Hình 1.2 – Cấu trúc gói tin IP Version (Phiên bản): Xác định phiên giao thức sử dụng IP Header Length (Chiều dài phần tiêu đề : Xác định chiều dài phần tiêu đề gói tin, tính đơn vị từ - 32 bits (32-bit word) Type-of-Service (Kiểu dịch vụ) : Đặc tả mức độ quan trọng mà giao thức phía muốn xử lý gói tin Total Length (Tổng chiều dài gói tin): Đặc tả chiều dài, tính byte, gói tin IP, bao gồm phần liệu tiêu đề Identification ( Số nhận dạng ): Số nguyên nhận dạng gói tin liệu hành Trường sử dụng để ráp lại phân đoạn gói tin Flags (Cờ hiệu): Gồm bít, bit có trọng số nhỏ để xác định gói tin có bị phân đọan hay không Bit thứ xác định có phải phân đoạn cuối gói tin hay khơng Bit có trọng số lớn chưa sử dụng Fragment Offset (Vị trí phân đọan): Biểu thị vị trí phân đoạn liệu so với vị trí bắt đầu gói liệu gốc, cho phép máy nhận xây dựng lại gói tin ban đầu Time-to-Live (Thời gian sống gói tin): Lưu giữ đếm thời gian, giá trị giảm dần đến có giá trị gói tin bị xóa Điều giúp ngăn ngừa tình trạng gói tin truyền lịng vịng khơng đến đích Protocol(Giao thức): Biểu giao thức tầng nhận gói tin giao thức IP xử lý Header Checksum (Tổng kiểm tra lỗi tiêu đề): kiểm tra tính tồn vẹn phần tiêu đề Source Addres : Địa máy gởi gói tin Destination Address: Địa máy nhận gói tin Options: Tùy chọn cho phép để hỗ trợ số vấn đề, chẳng hạn vấn đề bảo mật Data: Chứa liệu tầng gởi xuống cần truyền 1.2.2 Bộ giao thức điều khiển giao vận (TCP Protocol) - Giao thức TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") giao thức cốt lõi giao thức TCP/IP Sử dụng TCP, ứng dụng máy chủ nối mạng tạo "kết nối" với nhau, mà qua chúng trao đổi liệu gói tin Giao thức đảm bảo chuyển giao liệu tới nơi nhận cách đáng tin cậy thứ tự TCP phân biệt liệu nhiều ứng dụng (chẳng hạn, dịch vụ Web dịch vụ thư điện tử) đồng thời chạy máy chủ - TCP hỗ trợ nhiều giao thức ứng dụng phổ biến Internet ứng dụng kết quả, có WWW, thư điện tử Secure Shell - Trong giao thức TCP/IP, TCP tầng trung gian giao thức IP bên ứng dụng bên Các ứng dụng thường cần kết nối đáng tin cậy kiểu đường ống để liên lạc với nhau, đó, giao thức IP khơng cung cấp dịng kiểu đó, mà cung cấp dịch vụ chuyển gói tin khơng đáng tin cậy TCP làm nhiệm vụ tầng giao vận mơ hình OSI đơn giản mạng máy tính - Các ứng dụng gửi dịng gồm byte 8-bit tới TCP để chuyển qua mạng TCP phân chia dịng byte thành đoạn (segment) có kích thước thích hợp (thường định dựa theo kích thước đơn vị truyền dẫn tối đa (MTU) tầng liên kết liệu mạng mà máy tính nằm đó) Sau đó, TCP chuyển gói tin thu tới giao thức IP để gửi qua liên mạng tới mơ đun TCP máy tính đích TCP kiểm tra để đảm bảo khơng có gói tin bị thất lạc cách gán cho gói tin "số thứ tự" (sequence number) Số thứ tự sử dụng để đảm bảo liệu trao cho ứng dụng đích theo thứ tự Mô đun TCP đầu gửi lại "tin báo nhận" (acknowledgement) cho gói tin nhận thành công; "đồng hồ" (timer) nơi gửi báo time-out không nhận tin báo nhận khoảng thời gian round-trip time (RTT), liệu (được coi bị thất lạc) gửi lại TCP sử dụng checksum (giá trị kiểm tra) để xem có byte bị hỏng q trình truyền hay khơng; giá trị tính toán cho khối liệu nơi gửi trước gửi, kiểm tra nơi nhận 1.3 Lập trình socket 1.3.1 Giới thiệu socket - Socket giao diện lập trình ứng dụng (API-Application Programming Interface) Socket cho phép thiết lập kênh giao tiếp mà hai đầu kênh đánh dấu hai cổng (port) Thông qua cổng trình nhận gởi liệu với q trình khác Hình 1.3 – Mơ hình client - server 1.3.2 Số hiệu cổng socket - Để thực giao tiếp, hai q trình phải cơng bố số hiệu cổng socket mà sử dụng Mỗi cổng giao tiếp thể địa xác định hệ thống Khi q trình gán số hiệu cổng, nhận liệu gởi đến cổng từ q trình khác Q trình cịn lại u cầu tạo socket - Ngoài số hiệu cổng, hai bên giao tiếp phải biết địa IP Địa IP giúp phân biệt máy tính với máy tính mạng TCP/IP Trong số hiệu cổng dùng để phân biệt trình khác máy tính Hình 1.4 – Số hiệu cổng - Trong hình trên, địa q trình B1 xác định thơng tin: (Host B, Port B1): - Địa máy tính địa IP dạng 203.162.36.149 địa theo dạng tên miền www.cit.ctu.edu.vn - Số hiệu cổng gán cho Socket phải phạm vi máy tính đó, có giá trị khoảng từ đến 65535 (16 bits) Trong đó, cổng từ đến 1023 gọi cổng hệ thống dành riêng cho trình hệ thống 1.3.3 Các chế độ giao tiếp - Xét kiến trúc hệ thống mạng TCP/IP Hình 1.5 – Kiến trúc hệ thống TCP/IP - Tầng vận chuyển giúp chuyển tiếp thơng điệp chương trình ứng dụng với Nó hoạt động theo hai chế độ: - Giao tiếp có nối kết, sử dụng giao thức TCP - Hoặc giao tiếp không nối kết, sử dụng giao thức UDP - Socket giao diện chương trình ứng dụng với tầng vận chuyển Nó cho phép ta chọn giao thức sử dụng tầng vận chuyển TCP hay UDP cho chương trình ứng dụng CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Yêu cầu toán - Yêu cầu tốn đặt xây dựng mơ hình client – server giao tiếp với thơng qua Socket API để xử lý trò chơi cờ vua - Server khởi đông lắng nghe kết nối từ client Khi có kết nối từ client, server khởi tạo kênh giao tiếp lưu trữ kênh giao tiếp lại - Khi có từ client trở lên, server khởi tạo game đấu client Server tiếp tục lắng nghe kết nối từ client game đấu diễn - Mỗi game đấu luồng xử lý riêng nhận thông tin hai client lúc game đấu diễn - Các client thực nước trị chuyện qua lại thơng qua kênh kết nối qua chức chat - Kết thúc game đấu, server có trách nhiệm thơng báo kết người chơi Client yêu cầu kết nối để chơi tiếp game khác 2.2 Mơ hình truyền tin client/server hướng tới việc cung cấp dịch vụ - Quá trình trao đổi liệu bao gồm: Truyền yêu cầu từ tiến trình client tới tiến trình server Yêu cầu server xử lý Truyền đáp ứng cho client Mơ hình truyền tin liên quan đến việc truyền hai thông điệp dạng đồng hóa cụ thể client server - Tiến trình server phải nhận thức thơng điệp yêu cầu bước đến hành động phát yêu cầu client phải tạm dừng (bị phong tỏa) buộc tiến trình client trạng thái chờ cho tớ nhận đáp ứng server gửi bước ba - Mơ hình client/server thường cài đặt dựa thao tác gửi (send) nhận (receive) - Quá trình giao tiếp client server diễn theo hai chế độ: bị phong tỏa (blocked) không bị phong tỏa (non-blocked) Chế độ bị phong tỏa (blocked): Trong chế độ bị phong tỏa, tiến trình client server phát lệnh gửi liệu (send), việc thực thi tiến trình bị tạm ngừng tiến trình nhận phát lệnh nhận liệu (receive) Tương tự tiến trình nhận liệu, tiến trình (client server) phát lệnh nhận liệu, mà thời điểm chưa có liệu gửi tới việc thực thi tiến trình bị tạm ngừng có liệu gửi tới - Chế độ không bị phong tỏa (non-blocked) Trong chế độ này, tiến trình client hay server phát lệnh gửi liệu thực sự, việc thực thi tiến trình tiến hành mà khơng quan tâm đến việc có tiến trình phát lệnh nhận liệu hay khơng Hình 2.1 – Tiến trình gữi nhận message 10 2.2.1 Xây dựng chương trình - Các class, enum, interface sử dụng chương trình: o MessageType.java [Enum]: Thể kiểu liệu gửi/nhận client server Chương trình dựa vào kiểu liệu để xác định kiểu liệu nhận để xử lý cách phù hợp o Server.java [class]: Lớp kế thừa lớp JFrame, sau nhận thông tin port cần lắng nghe Server tạo luồng để lắng nghe tín hiệu kết nối từ client Khi có từ kết nối trở lên, server tạo game đấu tiếp tục lắng nghe kết nối từ client o Player.java [class]: Lớp thể người chơi, lưu trữ kết nối server với client Lớp Player kế thừa từ lớp Thread, lắng nghe xử lý liệu nhận từ client báo server o Match.java [class]: Lớp implement Runnable, PlayerInterface, thể game đấu Lớp Match xử lý kiện mà hai người chơi thực hiện, thông báo kết o Client.java [class]: Lớp kế thừa lớp JFrame implement ChessboardInterface thể hiển client Mỗi client chịu trách nhiệm lấy thông tin người chơi, yêu cầu kết nối tới server xử lý gửi liệu đến server o Chessboard.java [class]: Lớp mô tả bàn cờ, bao gồm chức di chuyển quân cờ thực nước đánh, khởi tạo bàn cờ, hiển thị tin nhắn hai người chơi,… o Piece.java [class]: Lớp lớp asbtract, thể quân cờ, chứa phương thức thuộc tính chung quân cờ o King.java [class]: Lớp thể quân vua bàn cờ, kế thừa từ lớp Piece o Queen.java [class]: Lớp thể quân hậu bàn cờ, kế thừa từ lớp Piece o Rook.java [class]: Lớp thể quân xe bàn cờ, kế thừa từ lớp Piece o Bishop.java [class]: Lớp thể quân pháo bàn cờ, kế thừa từ lớp Piece 11 o Knight.java [class]: Lớp thể quân mã bàn cờ, kế thừa từ lớp Piece o Pawn.java [class]: Lớp thể quân chốt bàn cờ, kế thừa từ lớp Piece o Square.java [class]: Lớp thể ô bàn cờ vua, kế thừa từ lớp Jpanel o Move.java [class]: Lớp thể bước di chuyển quân cờ Bao gồm điểm nguồn điểm đích kiểu o ChessboardInterface.java [Interface]: Interface bao gồm phương thức với mục đích thơng báo cho observer hành động thực chessboard o PlayerInterface.java [Interface]: Interface bao gồm phương thức với mục đích thông báo cho observer hành động thực player 2.2.2 Sơ đồ hoạt động Hình 2.2 – Sơ đồ hoạt động trò chơi cờ vua 12 2.2.3 Mơi trường phát triển - Ngơn ngữ lập trình Java - Chương trình soạn thảo build : Eclipse - Sử dụng giao thức TCP/IP - Sử dụng socket Java 13 CHƯƠNG 3: TRIỂN KHAI XÂY DỰNG HỆ THỐNG 3.1 Kết demo chương trình - Server: 14

Ngày đăng: 20/09/2023, 15:17

Tài liệu cùng người dùng

Tài liệu liên quan