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

Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql

34 40 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 đề Ứng Dụng Chat Socket Qua Mạng Lan Hỗ Trợ Đa Người Dùng Và Quản Lí Dữ Liệu SQL
Tác giả Lê Đăng Khôi
Người hướng dẫn TS. Hà Mạnh Đào
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Điện Tử
Thể loại Bài Tập Lớn
Năm xuất bản 2019
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 1,29 MB

Cấu trúc

  • CHƯƠNG 1. MỞ ĐẦU (5)
    • 1.1 Bối cảnh, lý do thực hiện đề tài (5)
    • 1.2 Cơ sở lập trình (5)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (6)
    • 2.1 Yêu cầu của đề tài (6)
    • 2.2 Giới thiệu mô hình Client/Server (6)
    • 2.3 Giới thiệu giao thức IP/TCP (7)
    • 2.4 Lập trình mạng trong Java (8)
  • CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH (10)
    • 3.1 Phân tích yêu cầu (10)
    • 3.2 Phân tích chức năng (10)
    • 3.3 Phân tích thiết kế chương trình (11)
    • 3.4 Thiết kế hệ thống (12)
  • CHƯƠNG 4 TRIỂN KHAI THỰC HIỆN VÀ KẾT QUẢ (18)
    • 4.1 Môi trường triển khai (18)
    • 4.2 Kết quả thực hiện (18)
    • 4.3 Chương trình (21)

Nội dung

Bối cảnh, lý do thực hiện đề tài Hiện nay mạng internet toàn cầu đã phát triển rất mạnh, đáp ứng rất tốt các nhu cầu về thông tin khoa học, giải trí, liên lạc, mua bán, quảng cáo v.v... của con người. Internet đã trở thành một thành phần không thể thiếu với cuộc sống hiện đại. Về bản chất, Internet chẳng qua là một hệ thống mạng, liên kết các máy tính trên toàn thế giới lại theo những chuẩn chung của nó. Với phạm vi nhỏ hơn nhưng cũng rất tương tự, có những mạng khác đó là WAN, LAN.., mỗi mô hình đó đều được ứng dụng rất nhiều tiện ích khác nhau. Với mục tiêu để cho các sinh viên ra trường với một kiến thức tốt về mạng, về lập trình ứng dụng trên mạng để có thể làm được nhiều việc khác nhau, bộ môn lập trình mạng ra đời. Vì vậy, ngày hôm nay, lúc em đang học về lập trình mạng, đã tìm được đề tài với tên “Ứng dụng chat qua mạng lan hỗ trợ đa người dùng và quản lí dữ liệu SQL”, điều đó giúp em thực hành để có cơ hội hiểu rõ hơn về mạng, về lập trình mạng – một lĩnh vực lập trình rất thú vị này. 1.2 Cơ sở lập trình Ứng dụng hoạt động dựa vào giao thức IP/TCP để truyền dữ liệu giữa hai máy khác nhau, cụ thể ở đây là một máy server để cung cấp dịch vụ và nhiều máy client sử dụng dịch vụ do máy server cung cấp để cho người dùng sử dụng. Ngôn ngữ lập trình ở đây là ngôn ngữ Java (Phiên bản J2SE 1.6) vì Java là ngôn ngữ có thể được sử dụng để viết ứng dụng chạy trên hầu hết các thiết bị (ở đây ta quan tâm tới thiết bị có hỗ trợ mạng). Trọng điểm, có mấy khả năng nổi trội do Java cung cấp mà ta có thể sử dụng là : - Lập trình đa tuyến trình (Cùng 1 ứng dụng nhưng có thể chạy nhiều tiến trình song song với nhau thay vì cứ phải tiến trình này đợi tiến trình kia kết thúc mới có thể thực hiện) - Java là một nền tảng có thể chạy trên nhiều loại thiết bị với nhiều hệ điều hành khác nhau nên có phạm vi ứng dụng rất rộng rãi. - Lập trình mạng. Lớp quan trọng nhất mà ta sử dụng là lớp Socket và ServerSocket

CƠ SỞ LÝ THUYẾT

Yêu cầu của đề tài

Chương trình Client/Server cho phép nhiều người dùng giao tiếp qua tin nhắn trong một phòng chat room và hỗ trợ chức năng gửi file.

Giới thiệu mô hình Client/Server

Máy chủ, hay còn gọi là server, là một hệ thống máy tính lớn với bộ xử lý mạnh mẽ, có khả năng hoạt động ổn định và lưu trữ lượng dữ liệu lớn Nó chuyên quản lý tài nguyên, chủ yếu là cơ sở dữ liệu, và cung cấp các dịch vụ mạng cho các máy khách Máy chủ thường hoạt động liên tục và sẵn sàng tiếp nhận các yêu cầu kết nối cũng như dịch vụ từ máy khách.

Client là thiết bị mà người dùng cuối sử dụng để truy cập và thực hiện các tác vụ thông qua dịch vụ do máy chủ cung cấp.

Quy trình hoạt động của mô hình này lặp lại 2 quá trình như sau :

- Client gửi yêu cầu lên server

- Server nhận được yêu cầu thì sẻ xử lý thích hợp và trả lời lại client

Giới thiệu giao thức IP/TCP

The Transmission Control Protocol (TCP) is a connection-oriented protocol that requires establishing a connection before data transmission begins It ensures that data is sent in the correct order and terminates the connection once the data transfer is complete.

Địa chỉ IP là nhận diện của một máy tính trong mạng, cho phép giao thức TCP truyền tải dữ liệu chính xác giữa các máy Mỗi máy tính trên mạng sẽ có một địa chỉ IP riêng biệt, giúp xác định vị trí của máy trong hệ thống mạng.

2.4.3 Giới thiệu về cổng Port

Giao thức TCP chỉ có khả năng truyền dữ liệu chính xác giữa các máy tính mà chưa thể định hướng đến từng ứng dụng cụ thể Trong môi trường đa nhiệm hiện nay, nhiều ứng dụng có thể hoạt động đồng thời và sử dụng dịch vụ mạng Khi máy chủ A gửi dữ liệu đến ứng dụng u trên máy B, dữ liệu phải được chuyển đến đúng ứng dụng này, không phải ứng dụng khác Để đảm bảo điều này, dữ liệu được gửi từ máy chủ A cần chứa thông tin giúp máy B xác định ứng dụng u, và thông tin này chính là địa chỉ port trên máy B, hoạt động như một lỗ cắm ảo mà ứng dụng u đã đăng ký để nhận dữ liệu từ máy chủ A.

Trên thực tế, địa chỉ port là một số nguyên 2 byte có giá trị từ 0 đến 65535

Cổng từ 0 đến 1023 là các cổng phổ biến được sử dụng cho nhiều ứng dụng thông dụng, chẳng hạn như HTTP trên cổng 80, mail trên cổng 25, FTP trên cổng 21 và Telnet trên cổng 23 Các cổng còn lại có thể được sử dụng một cách linh hoạt cho các mục đích khác nhau.

Mỗi cổng chỉ có thể được sử dụng cho một ứng dụng tại một thời điểm nhất định Chẳng hạn, nếu cổng 55 đã được ứng dụng A sử dụng, thì ứng dụng B sẽ không thể sử dụng cổng này.

4 thể sử dụng cổng 55 đó nữa chừng nào ứng dụng trước đó chưa có đóng cổng 55 lại

- Socket là một khái niệm để định vị một dịch vụ của một máy tính trên mạng khi kết hợp hai khái niệm IP và Port lại

- Socket có những nhiệm vụ như sau :

 Gắn một cổng trên máy

 Lắng nghe các kết nổi

 Kết nối/Đóng kết nối đến máy tính ở xa qua cổng đã gắn

 Lắng nghe dữ liệu đến

Socket là sự kết hợp giữa địa chỉ IP của máy tính và cổng Port mà ứng dụng sử dụng, tạo nên một khái niệm quan trọng trong lập trình mạng Nhờ vào sự kết hợp này, các ngôn ngữ lập trình cung cấp các gói và giao diện lập trình (API) hỗ trợ lập trình viên trong việc phát triển ứng dụng mạng qua giao thức TCP Một trong những ngôn ngữ nổi bật trong lĩnh vực này là Java, mà tôi sẽ giới thiệu ngay sau đây.

Lập trình mạng trong Java

 Mở một cổng kết nối trên server, sẵn sàng hoạt động trên cổng đó

Lắng nghe và chờ đợi yêu cầu kết nối trên cổng đã chỉ định, sau đó thực hiện kết nối khi có yêu cầu Phương thức public Socket(int port) được sử dụng để tạo cổng kết nối trên cổng port Khi có yêu cầu kết nối, phương thức public accept() sẽ chấp nhận kết nối và trả về một đối tượng Socket, mô tả nguồn đã được kết nối.

 Tạo luồng dữ liệu vào ra để có thể truyền dữ liệu trên cổng đến một socket ở máy khách (Đây là chức năng quan trọng nhất)

 Đóng kết nối lúc không sử dụng

 Kết nối tới một máy chủ thông qua địa chỉ IP và số hiệu cổng trên máy chủ đó

 Tạo luồng dữ liệu vào ra

2.4.3 Một số gói, lớp bổ trợ khác a Gói Swing, awt.event : tạo giao diện người dùng b Gói Runnable, Thread : Hỗ trợ đa tiến trình c Gói java.io : Cung cấp các lớp vào ra dữ liệu getInputStream() : Trả về một luồng mà có thể nhập dữ liệu vào getOutputStream() : Trả về một luồng ghi dữ liệu close() : Đóng kết nối khi không cần

Public Socket ( InetAddress address, int port)

Public void Close() ; Đóng kết nối

PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH

Phân tích yêu cầu

Hiện nay, mạng LAN đang phát triển mạnh mẽ trong trường học, cơ quan tổ chức và hộ gia đình, dẫn đến nhu cầu giao tiếp và trao đổi thông tin trong mạng LAN tăng cao Do đó, việc phát triển một chương trình chat phục vụ nhu cầu này là rất cần thiết.

Phân tích chức năng

 Đăng kí và đăng nhập vào server với một user do người dùng tự chọn

 Username và password của người dùng được lưu trên SQL Server

 Nhận danh sách các user đang online trên server

 Gửi tin nhắn tới một người hoặc tất cả mọi người online khác trên server

 Thực hiện gửi file đến một máy client khác

 Nhận tin nhắn từ user khác gửi tới

 Tạo cổng kết nối và sẵn sàng đón nhận các sự kết nối từ client

 Xử lý yêu cầu đăng nhập từ client

 Nếu nickname chưa có đăng nhập từ trước thì cho đăng nhập

Nếu một người đã đăng nhập với nickname đó, người dùng mới sẽ được yêu cầu đăng xuất tài khoản trước đó để có thể đăng nhập vào.

 Trả về danh sách các user online cho user có yêu cầu

 Nhận tin nhắn từ một user và chuyển tiếp tới các user khác tương ứng theo yêu cầu của user gửi

 Loại user khi user yêu cầu đăng xuất

 Xác nhận gửi file của đến user được yêu cầu

 Cho phép người sử dụng theo dõi các thành viên đăng nhập, đăng xuất.

Phân tích thiết kế chương trình

Thiết kế hệ thống

3.4.1 Sơ đồ Usecase tổng thể

Sơ đồ Usecase tổng thể

 Người dùng: Tất cả các người dùng đang vào máy khách, có chức năng kết nối tới máy chủ, gửi tin nhắn, gửi tập tin, đăng nhập

 Người quản trị: có thể truy cập và quản lý máy chủ, có quyền khởi động máy chủ

Sơ đồ hoạt động Kết nối tới máy chủ

Sơ đồ hoạt động Đăng nhập

Sơ đồ hoạt động Đăng ký

Sơ đồ hoạt động Gửi tập tin

Sơ đồ tuần tự Kết nối tới máy chủ

Sơ đồ tuần tự Đăng nhập

Sơ đồ tuần tự Đăng ký

TRIỂN KHAI THỰC HIỆN VÀ KẾT QUẢ

Môi trường triển khai

- Hệ điều hành : Microsoft Window 8.0

Kết quả thực hiện

- Về cơ bản, chương trình thực hiện được các chức năng là tạo kết nối, chat qua lại giữa các thành viên online

Mặc dù đề tài có phạm vi nhỏ, nhưng vẫn còn nhiều chức năng tiềm năng chưa được triển khai, như truyền file và gửi tin nhắn định dạng, tương tự như các ứng dụng chat hiện tại.

Giao diện hiện tại vẫn chưa thật sự tiện lợi cho người dùng Các thử nghiệm chỉ được thực hiện trên máy trong mạng LAN, giữa máy thật và máy ảo, cũng như trên máy cục bộ thông qua địa chỉ localhost.

Một số hình ảnh minh họa

15 Giao diện đăng nhập đăng kí của Client

Giao diện chat của Client

16 Giao diện Gửi File của Client

Chương trình

4.3.2 Chương trình trên máy server a.File MainForm.java

18 Tạo hiển thị thông báo lên màn hình

Các phương thức cần có trong mainform.java

20 Nút “Khởi động Máy Chủ”

Khai báo ban đầu và khai báo hiển thị ra màn hình appendMessage

Khai báo ban đầu, thiết lập luồng truyền dữ liệu Socket :

Thiết lập kết nối d File OnlineListThread.java

Khai báo thiết lập ban đầu

4.3.3 Chương trình trên máy Client a LoginForm.java

Hàm kết nối đến Server khi người dùng click vào nút “Đăng nhập” b MainForm.java

26 Thiết lập kết nối đến Server

Hàm hiện danh sách online

Khai báo ban đầu, khởi tạo ClientThread và thiết lập DataInputStream

Phương thức này được gọi đến khi người dùng click vào menu “Gửi File”, sau đó kết nối đến Server và bắt đầu sẵn sàng để gửi file

Phương thức SendFileThread này sẽ gửi yêu cầu chuyển dữ liệu đến Server

Code của nút gửi file khi người dùng nhấn e File SendingFileThread.java

Ngày đăng: 11/12/2021, 11:11

HÌNH ẢNH LIÊN QUAN

3.4.1  Sơ đồ Usecase tổng thể - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
3.4.1 Sơ đồ Usecase tổng thể (Trang 12)
Sơ đồ hoạt động Kết nối tới máy chủ. - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
Sơ đồ ho ạt động Kết nối tới máy chủ (Trang 13)
3.4.2  Sơ đồ hoạt động - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
3.4.2 Sơ đồ hoạt động (Trang 13)
Sơ đồ hoạt động Đăng ký. - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
Sơ đồ ho ạt động Đăng ký (Trang 14)
Sơ đồ hoạt động Gửi tập tin. - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
Sơ đồ ho ạt động Gửi tập tin (Trang 15)
Sơ đồ tuần tự Kết nối tới máy chủ. - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
Sơ đồ tu ần tự Kết nối tới máy chủ (Trang 16)
Sơ đồ tuần tự Đăng ký. - Ứng dụng chat socket qua mạng Lan hỗ trợ đa người dùng và quản lí dữ liệu sql
Sơ đồ tu ần tự Đăng ký (Trang 17)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w