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

Đồ án lập trình mạng Đề tài lập trình xây dựng chat room tcp sử dụng windows socket

31 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Lập Trình Xây Dựng Chat Room TCP Sử Dụng Windows Socket
Tác giả Lưu Quang Vũ, Trần Văn Vững, Nguyễn Như Ý
Người hướng dẫn TS. Hoàng Hữu Đức
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt – Hàn
Thể loại Đồ án
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 31
Dung lượng 2,21 MB

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN (9)
    • 1.1 Tổng quan đồ án (9)
    • 1.2 Nhiệm vụ đồ án (10)
    • 1.3 Mục tiêu đồ án (10)
    • 1.4 Phạm vi nghiên cứu (11)
    • 1.5 Cấu trúc đồ án (12)
  • CHƯƠNG II: CƠ SỞ LÝ THUYẾT (13)
    • 2.1 Giao thức TCP/IP (13)
      • 2.1.1 Mô hình TCP/IP là gì? (13)
      • 2.1.2 Chức năng và cách thức hoạt động của mô hình TCP/IP (13)
      • 2.1.3 Ưu và nhược điểm của giao thức TCP/IP (15)
    • 2.2 Mô hình Client-Server (16)
      • 2.2.1 Định nghĩa (16)
      • 2.2.3 Ưu và nhược điểm của mô hình (17)
    • 2.3 Windows Socket (18)
      • 2.3.1 Windows Socket là gì? (18)
      • 2.3.2 Windows Socket hoạt động như thế nào? (18)
    • 2.4 Công nghệ áp dụng (19)
      • 2.4.1 Ngôn ngữ C# (19)
      • 2.4.2 Ngôn ngữ C++ (20)
      • 2.4.3 Ứng dụng Visual Studio 2022 (22)
  • CHƯƠNG III: TRIỂN KHAI XÂY DỰNG CHƯƠNG TRÌNH (24)
    • 3.1 Nguyên lý hoạt động (24)
    • 3.2 Kết quả chương trình (26)
  • KẾT LUẬN (12)
  • TÀI LIỆU THAM KHẢO (31)

Nội dung

CHƯƠNG I: TỔNG QUAN 1.1 Tổng quan đồ ánTổng quan của đề tài "Lập trình xây dựng chat room TCP sử dụng WindowsSocket" để tạo ra một ứng dụng chat room trực tuyến, cho phép nhiều người dùn

TỔNG QUAN

Tổng quan đồ án

- Tạo một máy chủ (server) sử dụng Windows Socket để lắng nghe các kết nối đến từ các máy khách (clients).

Nhiệm vụ đồ án

Mục tiêu đồ án

- Tạo ra một ứng dụng chat room trực tuyến, cho phép nhiều người dùng kết nối và giao tiếp với nhau qua mạng TCP/IP.

- Áp dụng kiến thức về lập trình mạng và giao thức TCP/IP để xây dựng cơ chế kết nối và truyền dữ liệu giữa server và client.

- Sử dụng Windows Socket để tận dụng các chức năng và công cụ cung cấp bởi hệ điều hành Windows trong việc xây dựng chat room TCP.

Phạm vi nghiên cứu

- Nghiên cứu về Windows Socket: Trong phần này, bạn có thể tìm hiểu chi tiết về

Cấu trúc đồ án

Tóm tắt sơ lược tổng quan đồ án, nhiệm vụ, mục tiêu, phạm vi nghiên cứu Chương 2: CƠ SỞ LÝ THUYẾT

Giới thiệu về mô hình mạng máy tính Client-Server kết hợp với giao thức TCP/IP cùng với mô hình truyền tin Socket.

Chương 3: TRIỂN KHAI XÂY DỰNG CHƯƠNG TRÌNH

Nguyên lý hoạt động, viết chương trình Server, chương trình Client, kết quả chương trình

Kết quả đạt được, sự cống hiến của nhóm, hướng phát triển

CƠ SỞ LÝ THUYẾT

Giao thức TCP/IP

2.1.1 Mô hình TCP/IP là gì?

2.1.2 Chức năng và cách thức hoạt động của mô hình TCP/IP

Hình 2 1 Các tầng mô hình TCP/IP

Tầng 4 - Tầng Ứng dụng (Application) Đây là lớp giao tiếp trên cùng của mô hình Đúng với tên gọi, tầng Ứng dụng đảm nhận vai trò giao tiếp dữ liệu giữa 2 máy khác nhau thông qua các dịch vụ mạng khác nhau (duyệt web, chat, gửi email, một số giao thức trao đổi dữ liệu: SMTP, SSH, FTP, ) Tầng 3 - Tầng Giao vận (Transport)

Tầng 1 - Tầng Vật lý (Physical)

2.1.3 Ưu và nhược điểm của giao thức TCP/IP

+ TCP/IP hoạt động độc lập với hệ điều hành Do đó ít bị ảnh hưởng khi lỗi win.

+ Không chịu sự kiểm soát của bất kỳ tổ chức nào => chúng ta có thể tự do trong việc sử dụng

+ Không ảnh hưởng tới internet hay gây áp lực trên máy tính nhờ có dung lượng nhẹ.

+ Khó quản lý, cài đặt khá cầu kỳ, phức tạp.

+ Tầng giao vận đôi khi không đảm bảo được việc phân phối các gói tin, dữ liệu.

+ TCP/IP gồm các giao thức cố định, rất khó để thay thế.

+ TCP/IP dễ bị tấn công và từ chối dịch vụ.

Mô hình Client-Server

Client Server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách (Client) và máy chủ (Server).

Hình 2 2 Mô hình Client-Server

Hiểu một cách đơn giản thì Client là nguồn yêu cầu và Server phải phục vụ theo nó.

2.2.3 Ưu và nhược điểm của mô hình:

+ Tắc nghẽn lưu lượng: Trong trường hợp có quá nhiều Client tạo request từ cùng một Server thì nó có thể sẽ làm cho kết nối chậm hơn.

Độ bền của mạng Client Server phụ thuộc vào tính tập trung của nó; khi Server chính gặp sự cố hoặc bị nhiễu, toàn bộ hệ thống mạng sẽ bị gián đoạn.

+ Chi phí: được sử dụng để thiết lập và bảo trì Server trong Client Server thường sẽ khá cao.

Bảo trì hệ thống là yếu tố quan trọng khi các server hoạt động liên tục để đảm bảo hiệu suất làm việc ổn định Việc chăm sóc và bảo trì đúng mức sẽ giúp hệ thống hoạt động hiệu quả và giảm thiểu rủi ro.

+ Tài nguyên: Một điều mà chúng ta rất cần phải lưu ý đó chính là không phải tất cả tài nguyên hiện có trên Server đều sử dụng được.

Windows Socket

Windows Socket (Winsock) là một API quan trọng cho phát triển mạng ứng dụng trên hệ điều hành Windows, cung cấp các chức năng cần thiết để tạo, kết nối, truyền tải và nhận dữ liệu qua mạng bằng giao thức TCP/IP hoặc UDP Winsock cũng giúp các tầng TCP xác định ứng dụng nhận dữ liệu thông qua việc gán một cổng port cụ thể, từ đó thiết lập kết nối giữa Client và Server.

2.3.2 Windows Socket hoạt động như thế nào?

Windows Socket (Winsock) cung cấp một giao diện lập trình ứng dụng (API) cho phép lập trình viên thực hiện các thao tác kết nối, truyền và nhận dữ liệu qua mạng trên hệ điều hành Windows Quá trình hoạt động cơ bản của Winsock bao gồm việc thiết lập kết nối mạng, truyền tải dữ liệu và xử lý các yêu cầu từ ứng dụng.

Trước khi sử dụng các chức năng của Winsock, ứng dụng cần khởi tạo Winsock bằng cách gọi hàm WSAStartup() Hàm này thông báo cho hệ điều hành rằng ứng dụng muốn sử dụng Winsock và cung cấp thông tin về phiên bản Winsock hiện tại.

Để tạo socket, ứng dụng cần khởi tạo và gọi hàm socket() Socket là đối tượng thiết yếu dùng để gửi và nhận dữ liệu qua mạng, và hàm socket() sẽ trả về tham chiếu đến socket mới được tạo.

Để thiết lập kết nối với một máy chủ từ xa, ứng dụng cần sử dụng hàm connect() trên socket đã tạo, nhằm kết nối với địa chỉ IP và cổng của máy chủ.

Sau khi thiết lập kết nối, ứng dụng có thể sử dụng hàm send() để gửi dữ liệu và hàm recv() để nhận dữ liệu qua socket Hai hàm này hỗ trợ việc truyền và nhận dữ liệu theo giao thức TCP hoặc UDP.

Khi ứng dụng hoàn tất việc truyền và nhận dữ liệu, nó có thể đóng kết nối bằng cách gọi hàm closesocket() trên socket Hàm này thông báo cho hệ điều hành rằng socket không còn cần thiết và giúp giải phóng tài nguyên liên quan.

Cuối cùng, để giải phóng các tài nguyên và đóng kết nối với Winsock, ứng dụng cần gọi hàm WSACleanup() sau khi hoàn tất việc sử dụng Winsock.

Công nghệ áp dụng

C# (đọc là "C sharp") là ngôn ngữ lập trình mạnh mẽ do Microsoft phát triển, chủ yếu sử dụng trong nền tảng NET Ngôn ngữ này được áp dụng rộng rãi trong việc phát triển ứng dụng máy tính, ứng dụng web và ứng dụng di động.

Dưới đây là một số thông tin tổng quan về ngôn ngữ C#:

C# có cú pháp tương tự như C và C++, giúp người học dễ dàng tiếp cận nếu đã quen thuộc với các ngôn ngữ này Ngôn ngữ này sử dụng từ khóa, cú pháp điều khiển luồng, và cho phép khai báo biến cùng hàm, hỗ trợ các kiểu dữ liệu cơ bản như số nguyên, số thực, chuỗi, ký tự và logic.

C# là một ngôn ngữ lập trình hướng đối tượng (OOP) mạnh mẽ, hỗ trợ các khái niệm quan trọng như lớp, đối tượng, kế thừa, đa hình và đóng gói Bằng cách sử dụng OOP, lập trình viên có thể tổ chức mã nguồn một cách hiệu quả, mô phỏng các đối tượng và tương tác giữa chúng, từ đó tạo ra mã dễ đọc, bảo trì và mở rộng.

.NET Framework và NET Core là hai nền tảng phát triển ứng dụng chủ yếu của Microsoft, với C# là ngôn ngữ lập trình chính .NET Framework cung cấp một bộ thư viện phong phú và các công cụ phát triển mạnh mẽ, hỗ trợ việc xây dựng ứng dụng cho Windows và web.

C# là một ngôn ngữ lập trình phổ biến, được ứng dụng rộng rãi trong phát triển ứng dụng máy tính, web, di động, trò chơi điện tử và IoT nhờ vào thư viện phong phú và sự hỗ trợ mạnh mẽ từ Microsoft cùng cộng đồng lập trình viên, giúp đơn giản hóa quá trình xây dựng các ứng dụng phức tạp.

Để viết và biên dịch mã C#, bạn có thể sử dụng các công cụ phát triển phổ biến như Visual Studio, Visual Studio Code và Rider Những công cụ này không chỉ cung cấp trình biên dịch C# mà còn bao gồm trình chỉnh sửa mã nguồn, gỡ lỗi và nhiều tính năng hỗ trợ phát triển mạnh mẽ khác.

C++ là một ngôn ngữ lập trình mạnh mẽ và phổ biến, được sử dụng rộng rãi trong phát triển phần mềm Ngôn ngữ này hỗ trợ đa môi trường và nhiều phong cách lập trình, bao gồm lập trình hướng đối tượng, lập trình hệ thống và lập trình phần cứng Dưới đây là một số thông tin tổng quan về C++.

- Cú pháp: C++ có cú pháp tương tự như C, với nhiều mở rộng và tính năng mới.

C++ cung cấp hỗ trợ cho các khái niệm cơ bản như biến, hàm, mảng, con trỏ và cấu trúc dữ liệu, đồng thời còn tích hợp các tính năng nâng cao như đa kế thừa, đa hình, quản lý bộ nhớ tùy chỉnh và xử lý ngoại lệ.

C++ là một ngôn ngữ lập trình hướng đối tượng mạnh mẽ, cho phép lập trình viên định nghĩa lớp và tạo ra các đối tượng từ những lớp đó Ngôn ngữ này hỗ trợ các khái niệm quan trọng của lập trình hướng đối tượng như kế thừa, đa kế thừa, đóng gói và đa hình, giúp tối ưu hóa việc phát triển phần mềm và quản lý mã nguồn hiệu quả.

C++ nổi bật với hiệu suất vượt trội và khả năng quản lý bộ nhớ tối ưu, cho phép lập trình viên kiểm soát tài nguyên hệ thống một cách linh hoạt Ngôn ngữ này hỗ trợ việc điều khiển trực tiếp bộ nhớ thông qua việc sử dụng con trỏ và các hàm, giúp tác động trực tiếp đến vùng nhớ.

C++ là một ngôn ngữ lập trình phổ biến, được ứng dụng rộng rãi trong nhiều lĩnh vực như phát triển phần mềm hệ thống, trò chơi điện tử, ứng dụng di động, phần mềm nhúng, đồ họa máy tính và phát triển công cụ.

C++ được hỗ trợ bởi nhiều công cụ phát triển phổ biến như Microsoft Visual Studio, GCC, Clang và Xcode Những công cụ này cung cấp trình biên dịch C++, trình soạn thảo mã nguồn và môi trường phát triển tích hợp, giúp lập trình viên dễ dàng xây dựng và gỡ lỗi ứng dụng C++.

Hình 2 5 Ứng dụng Visual Studio 2022

Visual Studio 2022 là một IDE mạnh mẽ và phổ biến do Microsoft phát triển, được giới thiệu vào năm 2021 Phiên bản này mang đến nhiều tính năng mới và cải tiến vượt trội so với các phiên bản trước, giúp nâng cao trải nghiệm lập trình cho người dùng.

Visual Studio 2022 hỗ trợ phát triển ứng dụng đa nền tảng trên Windows, macOS và Linux, cho phép lập trình viên sử dụng nhiều ngôn ngữ như C++, C# và Python để tạo ra các ứng dụng linh hoạt và đa dạng.

Visual Studio 2022 cung cấp nhiều công cụ và tính năng hữu ích cho việc phát triển ứng dụng C# Người dùng có thể phát triển ứng dụng Windows, ứng dụng web ASP.NET, ứng dụng di động Xamarin và nhiều loại ứng dụng khác Ngoài ra, phần mềm này còn hỗ trợ cả NET Framework và NET Core, giúp mở rộng khả năng phát triển.

TRIỂN KHAI XÂY DỰNG CHƯƠNG TRÌNH

Nguyên lý hoạt động

Hình 3 1 Nguyên lý hoạt động Server

Mô hình trên cho thấy các bước cơ bản để xây dựng một server sử dụng socket trong C++ với Winsock:

- Server khởi tạo và khởi động Winsock để sử dụng các chức năng mạng.

- Server tạo một socket để lắng nghe các kết nối từ client.

- Server lắng nghe và chấp nhận các kết nối đến từ client.

- Server nhận và xử lý dữ liệu từ các client đã kết nối.

- Server gửi dữ liệu đến các client đã kết nối.

- Server xử lý các kết nối client bị đóng.

- Server tắt và giải phóng tài nguyên được sử dụng.

Hình 3 2 Nguyên lý hoạt động Client

Mô hình trên cho thấy các bước cơ bản để xây dựng một client sử dụng socket trong C# với Winsock:

- Client khởi tạo và khởi động Winsock để sử dụng các chức năng mạng.

- Client tạo một socket và kết nối tới server.

- Client gửi và nhận dữ liệu từ server.

- Client xử lý các trường hợp mất kết nối.

- Client đóng kết nối với server.

- Client tắt và giải phóng tài nguyên được sử dụng.

Ngày đăng: 20/12/2024, 15:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN