Đồ án lập trình mạng : Viết chương trình chơi game gỡ mìn-minesweeper ứng dụng socket

18 3.2K 34
Đồ án lập trình mạng : Viết chương trình chơi game gỡ mìn-minesweeper ứng dụng socket

Đ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

Đồ án lập trình mạng : Viết chương trình chơi game gỡ mìn-minesweeper ứng dụng socket . Game dò mìn trên java. lập trình ứng dụng mạng.

Xây dựng trò chơi mìn qua mạng LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tới các thầy cô trong Khoa CNTT, đặc biệt là thầy Mai Văn Hà đã hướng dẫn, chỉ bảo tận tình trong suốt thời gian em thực hiện đề tài này. Do còn nhiều hạn chế về trình độ cũng như thời gian nên đề tài này sẽ không tránh khỏi sai sót. Em rất mong nhận được sự chỉ bảo góp ý của các thầy cô và các bạn để giúp em hoàn thiện nó tốt hơn. Sinh viên thực hiện Trần Quốc Nhật Trung Trần Quốc Nhật Trung – 12TLT.CNTT Trang 1 Xây dựng trò chơi mìn qua mạng LỜI MỞ ĐẦU Ngày nay với sự phát triển nhanh chóng của công nghê thông tin và Internet nên ứng dụng của nó vào nhu cầu học tập và làm việc là rất lớn. Trong các công ty cũng như trong trường học thì việc gửi nhận cấc tập tin trong nội bộ công ty hay trường học là rất cần thiết để có thể dễ dàng quản lý và làm việc. Việc xây dựng một chương trình truyền file đem đến những lợi ích như: các máy tính trong mạng có thể trao đổi thông tin với nhau một các dễ dàng, không bị vướng mắc về mặt địa lý, Nhưng bên cạnh đó cũng đặt ra một số vấn đề là: làm thế nào để quản lý được các máy trạm, và nhiều máy có thể kết nối với nhau được hay không? Là một sinh viên công nghệ thông tin, thì với hiểu biết và kiến thức tích lũy được của mình trong thời gian học ở trường cũng như là tự học, nên nhóm em quyết định chọn đề tài “Xây dựng trò chơi mìn qua mạng” với hy vọng sẽ ứng dụng những gì đã học để thiết kế một trò chơi nhỏ, qua đó phát triển ứng dụng TCP. Trần Quốc Nhật Trung – 12TLT.CNTT Trang 2 Xây dựng trò chơi mìn qua mạng MỤC LỤC 1 LỜI MỞ ĐẦU 2 MỤC LỤC 3 CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH MẠNG 1 CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH 4 CHƯƠNG 3: CHƯƠNG TRÌNH DEMO 12 KẾT LUẬN 13 TÀI LIỆU THAM KHẢO 14 Trần Quốc Nhật Trung – 12TLT.CNTT Trang 3 Xây dựng trò chơi mìn qua mạng DANH SÁCH HÌNH ẢNH Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP 1 Hình 2.1: Socket hổ trợ TCP 6 Trần Quốc Nhật Trung – 12TLT.CNTT Trang 4 Xây dựng trò chơi mìn qua mạng CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH MẠNG 1.1. Giao thức TCP/IP IP là một họ giao thức để cung cấp phương tiện truyền thông liên mạng và nó được cấu trúc theo kiểu phân cấp. Khác với mô hình OSI tầng liên mạng sử dụng giao thức kết nối mạng "không liên kết" (connectionless) IP, tạo thành hạt nhân hoạt động của Internet. Cùng với các thuật toán định tuyến RIP, OSPF, BGP, tầng liên mạng IP cho phép kết nối một cách mềm dẻo và linh hoạt các loại mạng "vật lý" khác nhau như: Ethernet, Token Ring , X.25 Giao thức trao đổi dữ liệu "có liên kết" (connection - oriented) TCP được sử dụng ở tầng vận chuyển để đảm bảo tính chính xác và tin cậy việc trao đổi dữ liệu dựa trên kiến trúc kết nối "không liên kết" ở tầng liên mạng IP. Các giao thức hỗ trợ ứng dụng phổ biến như truy nhập từ xa (telnet), chuyển tệp (FTP), dịch vụ World Wide Web (HTTP), thư điện tử (SMTP), dịch vụ tên miền (DNS) ngày càng được cài đặt phổ biến như những bộ phận cấu thành của các hệ điều hành thông dụng như UNIX (và các hệ điều hành chuyên dụng cùng họ của các nhà cung cấp thiết bị tính toán như AIX của IBM, SINIX của Siemens, Digital UNIX của DEC), Windows9x/NT, NovellNetware, Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP Lê Xuân Phú – 12TLT.CNTT Trang 1 Xây dựng trò chơi mìn qua mạng 1.2. So sánh 2 giao thức TCP và UDP UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm. Các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu. TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ. Khác nhau (cơ bản): Các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân chủ yếu là do TCP phải hộ trợ nhiều chức năng hữu ích hơn(như khả năng khôi phục lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn. TCP : - Dùng cho mạng WAN. - Không cho phép mất gói tin. - Đảm bảo việc truyền dữ liệu. - Tốc độ truyền thấp hơn UDP UDP: Lê Xuân Phú – 12TLT.CNTT Trang 2 Xây dựng trò chơi mìn qua mạng - Dùng cho mạng LAN. - Cho phép mất dữ liệu. - Không đảm bảo. - Tốc độ truyền cao, VolP truyền tốt qua UDP 1.3. Địa chỉ IP Địa chỉ IP (IP là viết tắt của từ tiếng Anh: Internet Protocol - giao thức Internet) là một địa chỉ đơn nhất mà những thiết bị điện tử hiện nay đang sử dụng để nhận diện và liên lạc với nhau trên mạng máy tính bằng cách sử dụng giao thức Internet. Một cách đơn giản hơn: IP là một địa chỉ của một máy tính khi tham gia vào mạng nhằm giúp cho các máy tính có thể chuyển thông tin cho nhau một cách chính xác, tránh thất lạc. Có thể coi địa chỉ IP trong mạng máy tính giống như địa chỉ nhà của bạn để nhân viên bưu điện có thể đưa thư đúng cho bạn chứ không phải một người nào khác. Bất kỳ thiết bị mạng nào, bao gồm bộ định tuyến, bộ chuyển mạch mạng, máy vi tính, máy chủ hạ tầng (như NTP, DNS, DHCP, SNMP, v.v.), máy in, máy fax qua Internet, và vài loại điện thoại khi tham gia vào mạng đều có địa chỉ riêng và địa chỉ này là đơn nhất trong phạm vi của một mạng cụ thể. Vài địa chỉ IP có giá trị đơn nhất trong phạm vi Internet toàn cầu, trong khi một số khác chỉ cần phải đơn nhất trong phạm vi một công ty. Địa chỉ IP do Tổ chức cấp phát số hiệu Internet (IANA) quản lý và tạo ra. IANA nói chung phân chia những "siêu khối" đến Cơ quan Internet khu vực, rồi từ đó lại phân chia thành những khối nhỏ hơn đến nhà cung cấp dịch vụ Internet và công ty. Lê Xuân Phú – 12TLT.CNTT Trang 3 Xây dựng trò chơi mìn qua mạng CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH 2.1. Tổng quan về socket: 2.1.1 Định nghĩa: Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình yêu cầu dịch vụ (được gán nhãn là Client) và một chương trình cung cấp dịch vụ ( được gán nhãn là Server) trên mạng hoặc trên cùng một máy tính. 2.1.2. Nguyên lý hoạt động - Chương trình phía Server tạo ra một socket, socket này được chương trình gắn với một cổng trên server. Sau khi đựợc tạo ra socket này (mà từ nay ta sẽ gọi là socket phía server) sẽ chờ nghe yêu cầu từ phía client. - Khi chương trình phía Client cần kết nối với một Server, nó cũng tạo ra một socket, socket này cũng được hệ điều hành gắn với một cổng. Chương trình Client sẽ cung cấp cho Socket của nó (mà từ nay ta sẽ gọi là Socket phía Client) điạ chỉ mạng và cổng của Socket phía Server và yêu cầu thực hiện kết nối (nếu chương trình định sử dụng giao thức hướng kết nối) hoặc truyền dữ liệu ( nếu chương trình sử dụng giao thức không hướng kết nối). - Chương trình phía Server và chương trình phía Client trao đổi dữ liệu với nhau bằng cách đọc từ Socket hoặc ghi vào Socket của minh. Các socket ở hai phía nhận dữ liệu từ ứng dụng và đóng gói để gửi đi hoặc nhận các dữ liệu được gửi đến và chuyển cho chương trình ứng dụng bởi socket ở cả hai phía đều biết được địa chỉ mạng và điạ chỉ cổng của nhau. Ở bước thứ hai chúng ta thấy chương trình ứng dụng phải lựa chọn giao thức mà nó định sử dụng để trao đổi dữ liệu. Tùy theo việc chúng ta sử dụng giao thức nào (TCP hay UDP) mà cách thức xử lý trước yêu cầu của client có thể khác. Sau đây chúng ta sẽ xem xét chi tiết các thức trao đổi dữ liệu của Socket ứng với từng loại giao thức. 2.1.3. Socket hỗ trợ TCP Lê Xuân Phú – 12TLT.CNTT Trang 4 Xây dựng trò chơi mìn qua mạng Ở phía Server: Khi một ứng dụng trên server hoạt động nó sẽ tạo ra một socket và đăng ký với server một cổng ứng dụng và chờ đợi yêu cầu kết nối từ phía client qua cổng này. Ở phía client: Nó biết địa chỉ của máy trên đó server đang chạy và cổng và server đang chờ nghe yêu cầu. Do đó khi muốn kết nối đến Server, nó cũng tạo ra một socket chứa địa chỉ máy client và cổng của ứng dụng trên máy client đồng thời client sẽ cung cấp cho socket của nó địa chỉ và cổng của Server mà nó cần kết nối và yêu cầu Socket thực hiện kết nối. Khi Server nhận được yêu cầu kết nối từ Client, nếu nó chấp nhận thì server sẽ sinh ra một socket mới được gắn với một cổng khác với cổng mà nó đang nghe yêu cầu. Sở dĩ server làm như vậy bởi nó cần cổng cũ để tiếp tục nghe yêu cầu từ phía client trong khi vẫn cần một kết nối với client. Sau đó chương trình ứng dụng phía Server sẽ gửi thông báo chấp nhận kết nối cho Client cùng thông tin về địa chỉ cổng mới của socket mà nó dành cho Client. Quay lại phía client, nếu kết nối được chấp nhận nghĩa là socket của nó đã được tạo ra thành công và nó có thể sử dụng socket để giao tiếp với server bằng cách viết và ghi tới socket theo cách giao tiếp với một tài nguyên trên máy tính thông thường. Lê Xuân Phú – 12TLT.CNTT Trang 5 Xây dựng trò chơi mìn qua mạng Hình 2.1: Socket hổ trợ TCP 2.2. Sử dụng socket trong .NET framework 2.2.1. Giới thiệu về NameSpace System.Net và S y stem.Net.Sockets Cung cấp một giao diện lập trình đơn giản cho rất nhiều các giao thức mạng. Có rất nhiều lớp để lập trình. Ta quan tâm lớp IPAdress, IPEndPoint, DNS, … - Lớp IPAdress: - Any: Cung cấp một ñịa chỉ IP ñể chỉ ra rằng Server phải lắng nghe trên tất cả các Card mạng - Broadcast: Cung cấp một địa chỉ IP quảng bá - Loopback: Trả về một ñịa chỉ IP lặp - AdressFamily: Trả về họ địa chỉ của IP hiện hành - Lớp IPAddress - Phương thức khởi tạo IPAddress ( B y te [ ]) IPAddress ( Int64) Lê Xuân Phú – 12TLT.CNTT Trang 6 [...]... theo thiết lập mà ô đó sẽ chuyển sang trại thái “đánh dấu” hoặc “bình thường” Khi bạn “đánh dấu”, tức là bạn đoán rằng ô đó có thể có mìn nhưng không chắc chắn Lê Xuân Phú – 12TLT.CNTT Trang 11 Xây dựng trò chơi mìn qua mạng CHƯƠNG 3: CHƯƠNG TRÌNH DEMO Lê Xuân Phú – 12TLT.CNTT Trang 12 Xây dựng trò chơi mìn qua mạng KẾT LUẬN Lê Xuân Phú – 12TLT.CNTT Trang 13 Xây dựng trò chơi mìn qua mạng TÀI... dạng, địa chỉ:cổng ví d : 192.168.1. 1:8 080 - Lớp DNS - HostName: Cho biết tên của máy ñược phân giải - GetHostAddress: Trả về tất cả IP của một trạm - GetHostEntry: Giải đáp tên hoặc địa chỉ truyền vào và trả về ñối tượng IphostEntry - GetHostName: Lấy về tên của máy tính cục bộ NameSpace System.Net.Sockets Một số lớp hay dùng: TcpClient, UdpClient, TcpListener, Socket, NetworkStream, … Socket( AddressFamily... c : Khi người dùng nhấn phải vào ô - Được đánh dấu (? ): Khi nhấn phải vào ô đã được “cắm cờ” - Bình thường: không có tất cả các trạng thái trên 2.3.4 Các trường hợp khi mở một ô Khi mở một ô X nào đó, có 3 trường hợp có thể xảy ra: Lê Xuân Phú – 12TLT.CNTT Trang 10 Xây dựng trò chơi mìn qua mạng 1 X có mìn: hiện tất cả mìn trong bảng ra và game over’ 2 X không có mìn nhưng 8 ô xung quanh có mìn:...Xây dựng trò chơi mìn qua mạng - IsLoopback: Cho biết ñịa chỉ có phải ñịa chỉ lặp không - Parse: Chuyển IP dạng xâu về IP chuẩn - ToString: Trả ñịa chỉ IP về dạng xâu - TryParse: Kiểm tra IP ở dạng xâu có hợp lệ không? - Lớp IPEndPoint Phương thức khởi tạo IPEndPoint (Int64, Int32) IPEndPoint (IPAddress, Int32) Create: Tạo một EndPoint từ một ñịa chỉ Socket ToString : Trả về địa chỉ IP và... Trang 9 Xây dựng trò chơi mìn qua mạng AcceptSocket AcceptTcpClient Pending Chấp nhận một yêu cầu kết nối ñang chờ Chấp nhận một yêu cầu kết nối đang chờ (Ứng dụng sẽ dừng tại lệnh này cho ñến khi nào có một kết nối đến) Cho biết liệu có kết nối nào đang chờ đợi không ? (True = có) Start Bắt ñầu lắng nghe các yêu cầu kết nối Stop Dừng việc nghe 2.2 Trò chơi mìn: 2.3.1 Luật chơi Minisweeper (của... NetworkStream, … Socket( AddressFamily af, SocketType st, ProtocolType pt) SocketT Description Udp Connectionless communication Stream Tcp Connection-oriented Raw Icmp communication Internet Control Message Raw ype Protocoltyp Raw Protocol Plain IP packet communication Dgram e 2.2. 2: Sử dụng các lớp hổ trợ từ lớp socket Lê Xuân Phú – 12TLT.CNTT Trang 7 Xây dựng trò chơi mìn qua mạng 2.2.2.1 Lớp TCPClient Các... (IPEndPoint) (Gán địa chỉ máy cục bộ và số hiệu cổng để sử dụng trao ñổi thông tin về sau) TcpClient (RemoteHost: String, Int32) Tạo một đối tượng TcpClient và kết nối ñến một máy có địa chỉ và số hiệu cổng được truyền vào RemoteHost có thể là ñịa chỉ IP chuẩn hoặc tên máy Một số thuộc tính Name Description Available Client Connected Cho biết số byte ñã nhận về từ mạng và có sẵn để đọc Trả về Socket ứng với... nhiên và nhiệm vụ của người chơi là mở tất cả các ô không có mìn bằng cách click chuột trái vào các ô đó, khi chỉ còn các ô có mìn còn lại thì kết thúc màn chơi 2.3.2 Các trạng thái của một ô Tùy theo quá trình khởi tạo và thao tác của người dùng mà các ô trong bảng có thể có một hoặc vài trạng thái trong các trạng thái sau: - Có mìn: được đặt ngẫu nhiên lúc khởi tạo - Đã m : Khi người dùng nhấn chuột... có mìn nhưng 8 ô xung quanh có mìn: hiện số mìn xung quanh vào X 3 X không có mìn và xung quanh cũng không có mìn: mở lần lượt các ô xung quanh X cho đến khi gặp các trường hợp 1 và 2 2.3.5 Cắm cờ và đánh dấu Minisweeper cho phép bạn đánh dấu các ô nghi ngờ có mìn bằng cách “cắm cờ” và “đánh dấu” Khi bạn “cắm cờ”, tức là bạn xác định rằng ô đó có mìn và ô đó được hiển thị là một lá cờ Bạn không thể... Một số phương thưc Lê Xuân Phú – 12TLT.CNTT Trang 8 Xây dựng trò chơi mìn qua mạng Name Description Close Giải phóng ñối tượng TcpClient nhưng không ñóng kết nối Connect (RemoteHost, Port) Kết nối ñến một máy TCP khác có Tên và số hiệu cổng 2.2.2.2 Lớp TCPListener Phương thức khởi tạo Constructor method Name Description TcpListener (Port: Int32) Tạo một TcpListener và lắng nghe tại cổng chỉ ñịnh TcpListener(IPEndPoint)

Ngày đăng: 07/06/2014, 16:31

Từ khóa liên quan

Mục lục

  • LỜI MỞ ĐẦU

  • MỤC LỤC

  • CHƯƠNG 1: TỔNG QUAN VỀ LẬP TRÌNH MẠNG

    • 1.1. Giao thức TCP/IP

    • 1.2. So sánh 2 giao thức TCP và UDP

    • 1.3. Địa chỉ IP

    • CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH

      • 2.1. Tổng quan về socket:

      • 2.1.1 Định nghĩa:

      • 2.1.2. Nguyên lý hoạt động

      • 2.1.3. Socket hỗ trợ TCP

      • 2.2. Sử dụng socket trong .NET framework

      • 2.2.1. Giới thiệu về NameSpace System.Net và System.Net.Sockets

      • 2.2.2: Sử dụng các lớp hổ trợ từ lớp socket

      • 2.2.2.1 Lớp TCPClient

      • 2.2.2.2 Lớp TCPListener

      • 2.2. Trò chơi dò mìn:

      • 2.3.1. Luật chơi

      • 2.3.2. Các trạng thái của một ô

      • 2.3.4. Các trường hợp khi mở một ô

      • 2.3.5. Cắm cờ và đánh dấu

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

Tài liệu liên quan