Professional Documents
Culture Documents
ĐỀ TÀI
Mục lục
CHƯƠNG 1. MỞ ĐẦU ...................................................................................................2
Phần 1. Bối cảnh, lý do thực hiện đề tài .................................................................2
Phần 2 : Cơ sở lập trình ...........................................................................................2
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ..................................................................................4
Phần 1 : Yêu cầu của đề tài......................................................................................4
Phần 2 : Giới thiệu mô hình Client/Server ............................................................4
Phần 3 : Giới thiệu giao thức IP/TCP .....................................................................5
Phần 4 : Lập trình mạng trong Java. .......................................................................6
CHƯƠNG 3 : PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH .............................................8
Phần 1 : Phân tích yêu cầu ......................................................................................8
Phần 2 : Phân tích chức năng. .................................................................................8
Phần 3 : Phân tích thiết kế chương trình. .............................................................. 9
CHƯƠNG 4 : TRIỂN KHAI THỰC HIỆN VÀ KẾT QUẢ ..............................................10
Phần 1 : Môi trường triển khai .............................................................................10
Phần 2 : Kết quả thực hiện. ...................................................................................10
Phần 3 : Chương trình ...........................................................................................13
Chat Application & Send File 2
CHƯƠNG 1. MỞ ĐẦU
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 “Chat Application & Send
File”, đ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.
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.
Chat Application & Send File 3
- Lập trình mạng. Lớp quan trọng nhất mà ta sử dụng là lớp Socket và
ServerSocket.
Chat Application & Send File 4
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Client là máy khách, nó thường được sử dụng bởi người dùng cuối.
Nó hoạt động dựa trên việc sử dụng dịch vụ mà máy server cung cấp để thực
hiện các công việc mà người dùng cuối mong muốn.
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.
Mô hình Client/Server
Chat Application & Send File 5
khác không 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.
1. Giói ServerSocket
Nhiệm vụ chính :
Mở một cổng kết nối trên server, sẵn sàng hoạt động trên cổng
đó.
public Socket(int port) : Tạo cổng kết nối trên cổng port.
Lắng nghe, chờ đợi các yêu cầu kết nối trên cổng đó và kết nối
khi có yêu cầu.
public accept():Chấp nhận một kết nối và trả về một đối tượng
Socket mô tả nguồn đã được kết nối đến.
Chat Application & Send File 7
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).
2. Gói Socket.
Nhiệm vụ chính
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ủ đó.
1. Trên Client:
Đăng nhập vào server với một cái nickname do người dùng tự
chọn
Gửi tin nhắn tới một người, nhiều người hoặc tất cả mọi người
online khác trên server.
2. Trên Server:
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
Nếu nickname chưa có đăng nhập từ trước thì cho đăng nhập
Trả về danh sách các nickname online cho nickname có yêu cầu.
Xác nhận gửi file của đến nickname đượ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.
ServerThread
Main Form
SocketThread
ClientThread
Chat Application & Send File 10
b. File ServerThread.java
Khai báo ban đầu và khai báo hiển thị ra màn hình appendMessage
c. File SocketThread.java
Khai báo ban đầu, thiết lập luồng truyền dữ liệu Socket :
DataInputStream
Chat Application & Send File 19
d. File OnlineListThread.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
c. File ClientThread.java
Khai báo ban đầu, khởi tạo ClientThread và thiết lập DataInputStream
Chat Application & Send File 24
d. File SendFile.java
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
Chat Application & Send File 25
Phương thức SendFileThread này sẽ gửi yêu cầu chuyển dữ liệu đến Server
e. File SendingFileThread.java