Khái niệm về mạng máy tínhMạng máy tính computer network là một hệ thống viễn thông kỹ thuật số được thiết kế để kết nối các máy tính và thiết bị khác lại với nhau, cho phép chúng trao đổi
Các mô hình mạng phổ biến
Mô hình mạng máy tính Peer-to-Peer
Mô hình Server-based và P2P-network
Lập trình socket
Khái niệm socket
Socket là một cánh cửa giao tiếp giữa hai tiến trình ứng dụng, đóng vai trò quan trọng trong việc kết nối và truyền thông tin giữa các chương trình
Lập trình Socket là một kỹ thuật lập trình cho phép các ứng dụng giao tiếp với nhau qua mạng Socket được sử dụng để thiết lập một kênh liên lạc giữa hai tiến trình, có thể chạy trên cùng một máy tính hoặc trên các máy tính khác nhau
Thông qua Socket, dữ liệu có thể được gửi và nhận một cách hiệu quả, đảm bảo sự liên lạc liên tục và ổn định giữa các ứng dụng. Điểm mạnh của Socket là khả năng hỗ trợ nhiều ngôn ngữ lập trình như C, Java, Perl, Python, và nhiều nền tảng khác nhau, bao gồm cả *nix và Windows
Giao thức được sử dụng
Giao thức được sử dụng
UDP UDP
Quá trình lập Socket
Socket trong TCP và UDP
Chức năng của socket là kết nối giữa client và server thông qua các giao thức TCP/IP và UDP để truyền và nhận dữ liệu qua Internet.
1.4.1 Socket trong TCP và UDP Để socket có thể hoạt động, hai ứng dụng cần truyền thông tin phải đáp ứng các điều kiện sau:
- Hai ứng dụng có thể nằm cùng trên một máy hoặc trên hai máy khác nhau
- Trong trường hợp hai ứng dụng cùng nằm trên một máy, số hiệu cổng của chúng phải khác nhau.
- Việc truyền dữ liệu qua Internet còn đòi hỏi các ứng dụng phải tuân thủ các quy tắc và giao thức truyền thông mạng, đảm bảo tính toàn vẹn và bảo mật của dữ liệu.
Stream Socket hay còn gọi là socket hướng kết nối, là socket hoạt động thông qua
Phân tích thiết kế hệ thống xây dựng trò chơi caro
2.1.1 Bàn cờ và quản lý trò chơi
- Bàn cờ Caro: Bàn cờ được vẽ trên giao diện chính, bao gồm một lưới ô vuông có kích thước chuẩn 20x20 Mỗi ô có thể được đánh dấu bởi người chơi X hoặc O, và giao diện sẽ liên tục cập nhật trạng thái của bàn cờ sau mỗi nước đi.
- Thông tin người chơi: Hai người chơi được biểu diễn bởi các biểu tượng X và O, có tên người chơi và tỉ số hiển thị bên cạnh.
- Thời gian lượt đi: Để giới hạn thời gian mỗi lượt đi, giao diện sử dụng một thanh tiến trình (ProgressBar) để hiển thị thời gian còn lại cho người chơi hiện tại
2.1.2 Chức năng chính của ứng dụng
Chơi qua mạng LAN Chơi qua mạng LAN
Chat trực tiếp Chat trực tiếp Đồng hóa dữ liệu Đồng hóa dữ liệuChức năng Undo và New GameChức năng Undo và New Game
2.2 Mô hình hoá chức năng
- Đánh cờ caro: Cho phép người chơi chơi trò chơi bằng cách đánh dấu vào một ô trống trên bàn cờ
- Chat: Cho phép giao tiếp, trao đổi thông tin giữa các người chơi với nhau.
- Chơi mới: Cho phép bắt đầu một ván cờ caro mới.
- Kết nối mạng LAN: Cho phép người chơi kết nối tới mạng LAN của đối thủ để chơi.
- Undo: Cho phép người chơi hoàn tác lại lượt đánh trước đó.
- Thoát trò chơi: Cho phép người chơi thoát khỏi trò chơi.
2.2.2 Biểu đồ usecase tổng quát
Biểu đồ usecase tổng quát.
2.2 Mô hình hoá chức năng
Biểu đồ usecase chi tiết Đánh cờ caro.
2.2 Mô hình hoá chức năng
Biểu đồ usecase chi tiết Chat.
2.2 Mô hình hoá chức năng
Biểu đồ usecase chi tiết Chơi mới.
2.2 Mô hình hoá chức năng
Biểu đồ usecase chi tiết Kết nối mạng LAN.
2.2 Mô hình hoá chức năng
Biểu đồ usecase chi tiết Undo.
2.2 Mô hình hoá chức năng
Biểu đồ usecase chi tiết Thoát.
XÂY DỰNG TRÒ CHƠI CỜ CARO
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
C# (hay còn gọi là C Sharp, là ngôn ngữ lập trình hướng đối tượng, hiện đại do Microsoft phát triển như một phần của nền tảng NET
Tính năng chính của C# là an toàn kiểu của nó, giúp ngăn ngừa các lỗi lập trình có thể xảy ra với các ngôn ngữ khác Không những vậy, nó còn hỗ trợ quản lý bộ nhớ tự động thông qua trình thu gom rác, giúp dễ dàng viết mã đáng tin cậy mà không làm rò rỉ bộ nhớ hay gây ra bất kỳ sự cố nào.
C# được sử dụng rộng rãi trong việc phát triển các ứng dụng Windows dành cho máy tính để bàn, game, ứng dụng web và các ứng dụng dành cho thiết bị di động
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
NET Framework là một nền tảng lập trình của Microsoft, cho phép lập trình viên xây dựng các ứng dụng Windows, web và nền tảng dịch vụ trên máy tính Nó cung cấp các thư viện, công cụ và tiêu chuẩn để xây dựng và chạy các ứng dụng, bao gồm cả việc quản lý bộ nhớ và xử lý lỗi.
Công cụ này sẽ hỗ trợ xây dựng các chương trình phần mềm, tham gia lập trình cho giao diện máy chủ, truy cập, kết nối cơ sở dữ liệu, giao tiếp giữa các mạng, …
Một số chức năng chính bao gồm:
- Hỗ trợ nhiều ngôn ngữ lập trình - Quản lý bộ nhớ tự động
- Công cụ xử lý lỗi- Hỗ trợ xây dựng ứng dụng web- Hỗ trợ việc nối các ứng dụng
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
Giao diện bàn cờ và hộp chat.
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
Giao diện Client và Server.
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
Giao diện thông báo khi người chơi chưa chọn vào nút Connect.
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
Giao diện thông báo kết quả
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
Giao diện chat giữa 2 máy
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
Giao diện thông báo người chơi đã thoát.
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
3.3 Kết quả và đánh giá
- Hoàn thiện sản phẩm: Sinh viên đã thành công trong việc phát triển một phiên bản game cờ caro đơn giản có thể chơi trực tuyến giữa hai người.
- Nâng cao kỹ năng lập trình mạng: Thông qua dự án, sinh viên đã nắm vững và áp dụng các khái niệm cơ bản trong lập trình mạng như sử dụng socket để thiết lập kết nối, giao tiếp qua giao thức TCP/IP, và xử lý dữ liệu truyền nhận giữa client và server.
- Phát triển kỹ năng làm việc nhóm: Dự án yêu cầu sinh viên phải làm việc nhóm để phân chia nhiệm vụ, hợp tác và phối hợp để hoàn thành các phần của trò chơi.v
- Ứng dụng các khái niệm lý thuyết vào thực tế: Sinh viên đã có cơ hội áp dụng các kiến thức lý thuyết về lập trình mạng, cấu trúc dữ liệu, thuật toán và thiết kế phần mềm vào một dự án thực tế.
- Phát hiện và giải quyết vấn đề: Trong quá trình phát triển, sinh viên đã gặp phải nhiều vấn đề thực tế như xử lý xung đột kết nối, đảm bảo độ chính xác của dữ liệu truyền nhận, và tối ưu hóa hiệu suất của trò chơi
3.1 Giới thiệu ngôn ngữ C# và công nghệ NET Framework
- Tính đơn giản - Thực hành lập trình mạng cơ bản - Phát triển kỹ năng lập trình
- Không phản ánh đầy đủ các khía cạnh của lập trình mạng- Giới hạn trong việc mở rộng và nâng cao