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

Báo cáo lập trình mạ ng Đềề tài multi chat application

11 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 đề Multi-chat application
Tác giả Đào Văn Tài, Trần Quang Minh, Nguyễn Tuấn Hùng, Nguyễn Khắc Sơn, Phùng Thanh Nam
Người hướng dẫn Nguyễn Trọng Khánh
Trường học Học viện Công Nghệ Bưu Chính Viễn Thông
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 1,86 MB

Nội dung

- Tạo ra được 1 chương trình mà các Client kết nối được với nhau thông qua Server.. 1.2Giải quyết bài toán - Giao thức TCP/IP - Mô hình Client Server - Socket trong java - TCP/IP cho phé

Trang 1

Học viện Công Nghệ Bưu Chính Viễn Thông

Báo Cáo L p Trình M ng ậ ạ Đềề Tài: Multi-Chat Application Giảng viên: Nguyễn Trọng Khánh

Nhóm: 01

1 Đào Văn Tài B19DCCN563

2 Trần Quang Minh B19DCCN443

3 Nguyễn Tuấn Hùng B19DCCN298

4 Nguyễn Khắc Sơn B19DCCN555

5 Phùng Thanh Nam B19DCCN445

Trang 2

Hà Nội 10/2022

1 Giới thiệu bài toán

1.1Mục tiêu bài toán

- Dùng ngôn ngữ Java để xây dựng 1 trương trình Chat qua mạng theo mô hình Client/Server

- Tạo ra được 1 chương trình mà các Client kết nối được với nhau thông qua Server

- Các Client có thể gửi tin nhắn, hoặc trò chuyện trực tiếp với các Client khác 1.2Giải quyết bài toán

- Giao thức TCP/IP

- Mô hình Client Server

- Socket trong java

- TCP/IP cho phép các máy tính trong mạng TCP/IP có thể tạo ra các kết nối để trao đổi thông tin với nhau Với 1 địa chỉ IP + 1 cổng TCP sẽ tạo thành một cầu nối và Socket chính là một giao diện lập trình trên các cầu nối đó

(1 IPAddress+ 1 Port TCP = 1 Socket)

- Khi các máy tính muốn trao đổi thông tin với nhau thì các máy phải có cùng một Socket Một máy được coi là Server, nó mở ra một Socket và lắng nghe yêu cầu Các máy còn lại được coi là Client, nó gọi cho Server Socket để bắt thiết lập một kết nối Để thiết lập được kết nối cần có địa chỉ của máy đích (Destination IP Address) và một cổng TCP (TCP port)

- Phương thức truyền tin trong Java:

Nó sử dụng phương thức truyền tin có kết nối thông qua 2 đối tượng là: Socket (Client) và ServerSocket (Server) Tạo 1 Socket sử dụng để kết nối tới 1 SocketServer

- Client Socket được tạo ra thông qua 1 hàm khởi tạo (Contructor) của lớp Socket:

Socket client=new Socket (Destination Address, Port)

Trong đó:

- Destination Address là địa chỉ của máy muốn kết nối tới

- Port là số hiệu cổng TCP đòi hỏi phải có một ServerSocket đang lắng nghe yêu cầu trên đó

Trang 3

- Để tạo ra một ServerSocket sử dụng câu lệnh sau:

ServerSocket SSocket=

new ServerSocket (Port, Number of Connection)

Trong đó:

- Port là số hiệu cổng sẽ chờ để phục vụ

- Number of Connection là số kết nối chấp nhận phục vụ cùng một lúc

- Một SocketServer sẽ lắng nghe trên một cổng Khi nhận được một yêu cầu từ socket (Client Socket) nó sẽ kiểm tra xem còn chấp nhận được kết nối đó không, chưa vượt quá số kết nối mà nó có thể phục vụ, nếu được

nó sẽ tạo ra một Socket để tạo liên kết với Client yêu cầu bằng phương thức:

Socket client=SSocket.accept();

- Các Socket cung cấp 1 giao diện để đọc ghi dữ liệu thông qua luồng Khi kết nối đã được thiết lập 2 máy tính có thể trao đổi dữ liệu thông qua các đối tượng:

BufferedReader in= new BufferedReader (new InputStreamReader(client.getInputStream()));

PrintWriter out=PrintWriter(client.getOutputStream(),true);

- Khi thực hiện xong cần hủy bỏ các liên kết để trả lại tài nguyên cho hệ thống, chúng ta sử dụng phương thức:

In.close();

Out.close();

Client.close();

Trang 5

2 Phân tích hệ thống

2.1Cơ sở lý thuyết

2.1.1 Giao thức

- Giao thức TCP:

Là giao thức hướng kết nối, nó cung cấp một hoạt động truyền tin tin cậy TCP chịu trách nhiệm phân chia dữ liệu gửi thành các segment tại máy gửi và lắp ghép các segment lại tại máy đích, trong quá trình truyền có thể truyền lại bất cứsegment nào nếu máy đích chưa nhận được Gói tin TCP có dạng sau

2.1.2 Mô hình Client Server

- Các ứng dụng mạng thường hoạt động theo mô hình client/server như thư điện tử, truyền nhận tập tin, game trên mạng, Mô hình này gồm có một chương trình đóng vaitrò là client và một chương trình đóng vai trò là server Hai chương trình này sẽ giao tiếp với nhau thông qua mạng Chương trình server đóng vai trò cung cấp dịch vụ Chương trình này luôn luôn lắng nghe các yêu cầu từ phía client, rồi tính toán và đáp trả kết quả tương ứng Chương trình client cần một dịch vụ và gởi yêu cầu dịch vụ tới chương trình server và đợi đáp trả từ server Như vậy, quá trình trao đổi dữ liệu giữa client/server bao gồm:

- Truyền một yêu cầu từ chương trình Client tới chương trình Server

- Yêu cầu Server xử lý

- Truyền đáp ứng cho Client

Trang 6

- Mô hình truyền tin này thực hiện truyền hai thông điệp qua lại giữa Client và Server một cách đồng bộ hóa Server nhận thông điệp từ Client thì nó phát ra yêu cầu Client chuyển sang trạng thái chờ cho tới khi Client nhận được thông điệp đáp ứng do Server gửi về Mô hình Client/Server thường được cài đặt dựa trên các thao tác cơ bản là gửi(send) và nhận (receive)

2.1.3 Lập trình Socket

- Socket là gì?

Sockets cung cấp một interface để lập trình mạng tại tầng Transport Một socket là một end-point của một liên kết giữa hai ứng dụng Ngày nay, Socket được hỗ trợ trong hầu hết các hệ điều hành như MS Windows (WinSock), Linux và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau: như C, C++, Java, Visual Basic, C#, Windows Socket Application Programming Interface (Winsock API) là một thư viện các hàm socket

- Winsock hỗ trợ các lập trình viên xây dựng các ứng dụng mạng trên nền TCP/IP

- Xây dựng ứng dụng Client-Server với Socket

- Khi xây dụng một ứng dụng mạng, chúng ta thực hiện các bước sau:

1 Xác định kiến trúc mạng: Client – Server, Peer-to-Peer

2 Giao thức sử dụng tầng Transport: TCP, UDP

3 Các port sử dụng ở Server và Client

4 Giao thức tầng ứng dụng khi trao đổi dữ liệu giữa hai end-host

5 Lập trình

Trang 7

2.2Mô tả ứng dụng

2.2.1 Giới thiệu chung

- Ứng dụng được xây dựng nhằm mục đích chia sẻ tin nhắn giữa 1 máy (tạm gọi là server) và các máy còn lại trong 1 nhóm nhất định (các máy client) và gửi file cho các Client khác

- Client:

Khi các máy client kết nối vào server thì các client sẽ nhận được các đoạn thông báo được gửi bởi server và phát ra âm thanh ở phía client

- Server:

Server nhận các đoạn chat từ các client và bắt đầu gửi tin nhắn (dưới dạng Stream) cho các client khác

Server sẽ biết được danh sách các client đang kết nối tới mình (mỗi client kết nối

Trang 8

sẽ được hiển thị lên bảng tại server) Server sẽ biết được thông tin chi tiết của từng Client

và gửi danh sách nick name cho các client còn lại

2.2.2 Kiến trúc ứng dụng

- Phía Server:

+ Lắng nghe và chấp nhận kết nối từ các Client

+ Nhận và gửi thông điệp cho các Client

- Phía Client:

+ Kết nối và gửi thông điệp cho Server

3 Cài đặt và thử nghiệm

3.1 Hướng dẫn cài đặt

- Chương trình gồm 2 phần chính là: Client và Server Muốn chương trình chạy được thì ta phải chạy Server trước để lắng nghe các Client Sau đó chạy các Client

- Chạy Server ta run file MainForm phía Server:

- Nhập port cho Server và khởi động máy chủ, phía Server hiện thông báo máy chủ khởi động với cổng port

- Chạy LoginForm phía Client để mở giao diện đăng nhập vào hệ thống chat

Trang 9

- Nhập tên tài khoản, địa chỉ IP, và cổng của Server muốn đăng nhập

- Sau khi đăng nhập thành công sẽ vào giao diện của phòng chat, ở khung danh sách online sẽ hiển thị những người dùng cùng đăng nhập vào Server

- Những người dùng mới (Client) được tạo ra khi ta tiếp tục run file LoginForm và đăng nhập đúng vào Server

Trang 10

- Các Client có thể đăng xuất, ngắt kết nối với Server bằng cách click vào Tài khoản và Đăng xuất

- Chia sẻ File: Khi Client click Chia sẻ file, chương trình dẫn tới cửa sổ gửi file, người dùng chọn file và nhập tên người dùng đã đăng nhập vào Server và gửi File

- Bên phía người nhận sẽ có thông báo xác nhận nhận file hay không,

Trang 11

4 Kết luận

4.1 Kết quả đạt được

- Mô phỏng thành công mô hình Client – Server

- Thực hiện được các yêu cầu đề bài: Đăng nhập, danh sách online, chat room, gửi file

4.2 Những vấn đề tồn tại

- Chương trình còn đơn giản

- Một số yêu cầu chưa thực hiện được

- Giao diện sơ sài

5 Tài liệu tham khảo

Link github: https://github.com/daovantai/laptrinhmangnhom1.git

Ngày đăng: 16/02/2025, 15:09