Tải bản đầy đủ (.docx) (17 trang)

Đồ án Chat qua mạng bằng Java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (481.31 KB, 17 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KÌ
Môn: Lập Trình Java
Đề Tài:
GVHD:
Nhóm thực hiện:
- Lê Thị Hường - 10520528
- Nguyễn Hồng Ngọc - 10520426
- Nguyễn Ngọc Bảo Châu - 10520498
Tp.HCM, ngày 31 tháng 05 năm 2012.
LỜI MỞ ĐẦU
Ngày nay, cùng với sự phát triển của đất nước, các ngành khoa học, ngành công nghệ
thông tin, đặc biệt là lĩnh vực mạng, internet đang phát triển với tốc độ rất lớn. Mạng máy
tính ra đời đã giải quyết rất nhiều nhu cầu của con người…trong đó có loại hình truyền thông
CHƯƠNG TRÌNH LAN CHAT
thao qua mạng, con người có thể kết nối, nói chuyện gặp gỡ trên mọi nơi, mọi khoản cách
thông qua rất nhiều ứng dụng như skype, yahoo messenger.
Do vậy, với mục tiêu mô phỏng mô hình này nhằm cung cấp một cái nhìn tổng quát
nhất về đặc tính kỹ thuật, cách xây dựng một chương trình cung cấp khả năng giao tiếp qua
mạng cho con người…chúng em xin thực hiện đề tài: “Chương trình Lan Chat” bằng ngôn
ngữ Java trên nền được viết bằng NetBeans IDE.
Do khá mới mới mẻ Lập trình Java nên sẽ không tránh khỏi sai sót, rất mong nhận
được sự góp ý của các thầy cô.
Chúng em xin chân thành cảm ơn.
Nhóm thực hiện.
LỜI CẢM ƠN
Nhóm thực hiện.

NHẬN XÉT
(Của giảng viên hướng dẫn)





























MỤC LỤC
Mở đầu Số trang
I. GIỚI THIỆU SƠ LƯỢC VỀ ĐỀ TÀI.

1. Giới thiệu:
Tự viết nhé.
2. Mục tiêu:
Tự viết nhé.
3. Các chức năng chính:
• Đăng ký User.
• Chat giữa nhiều client với nhau (text, emotions).
• Chat Group.
• Tin nhắn offline.
• Thay đổi giao diện.
• Thay đổi avatar.
• Gửi, nhận file.
• Chơi caro.
II. PHÂN TÍCH YÊU CẦU.
Tự viết nhé.
III. CÁC BƯỚC THIẾT KẾ CHƯƠNG TRÌNH LAN CHAT.
1. Kiến trúc chương trình:
LTW_C24 Trang 6
1.1. Mô hình client server:
1.2. TCP Socket
- Socket = IP + Port.
- IP: Địa chỉ IP của một máy tính trên mạng TCP/IP.
- Port: một số nguyên 2 byte không dấu.
- Máy truyền và máy nhận thiết lập một kết nối TCP trên cặp socket.
- Máy truyền và máy nhận thiết lập một kết nối TCP trên cặp socket.
- Sau khi hoàn tất quá trình thiết lập kết nối, hai máy tính có thể truyền / nhận dữ
liệu.
- Hỗ trợ: point-to-point.
- Classes:
LTW_C24 Trang 7

o ServerSocket: “lắng nghe” yêu cầu kết nối.
o Socket: truyền / nhận dữ liệu.
1.3. Mô hình hoạt động của chương trình.
1.3.1. Truyền thông client và server
- Client gửi username, password lên cho server. Sever kiểm tra trong
“scr\UserProfile\tên user\pass.txt”. nếu sai password hoặc không tồn tại folder “tên
user” sẽ thông báo về cho client, ngược lại client được phép đăng nhập và mở
FriendList_Frame
- Nếu client check vào “Invisible” thì server không thông báo online cho toàn mạng
nhưng vẫn lưu vào 1 mảng User_Socket (lưu username và socket của client).
- Khi 1 user đã đăng nhập với nickname abc. Hiển nhiên, thử đăng nhập tiếp với
username abc => thông báo user này đang online.
1.3.2. Truyền thông client-client thông qua server
LTW_C24 Trang 8

1.4. Mô tả và giải thích xử lý các lớp, đối tượng chính phục vụ cho hoạt động của
chương trình:
1.4.1. Server
- Class Server_Chat gồm nhiều function để chạy server, chờ kết nối từ client
và handle kết nối ấy. Function search tiến hành tìm kiếm trong mảng user
đã đăng nhập trả về user+socket, sau dó dùng gửi thông diệp theo socket
này. Vì vậy người gửi chỉ cần biết nickname của bạn chát là được.
- Class Send_Object và user_socket viết dưới dạng thread để có thể thực hiện
nhiều thao tác gửi và nhận dữ liệu song song.
1.4.2. Client
- Class ConnectToServer cấu hình các thông số kết nối với server như IP,
Port lắng nghe trên server.
- Class Friendlist_Frame là khung quản lý chính, handle các khung chat,
phân phối dữ liệu nhận từ server cho đúng khung chat. Đáng lưu ý là
hàm findFrame(String reciever). Hàm này thực hiện tìm frame cửa sổ

chát với ai đó đã mở chưa. Nếu chưa sẽ mở frameChat mới, ngược lại
set thông điệp lên frame cũ. Tất nhiên khi frameChat mới được mở sẽ
lưu lại ở mảng frameList(mảng Arraylist). Khi tắt frameChat cũng
remove frameChat đó đi.
LTW_C24 Trang 9
- Class FrameChat hiển thị dữ liệu dạng text hoặc emotions, save
message vào file.
- Class Send_Object và ListenMessage tương tự phía server gửi nhận dữ
liệu song song.
- Class SendFile và ReceiveFile để gửi và nhận file. Được viết dạng
thread có thể chạy song song với các chức năng khác.
- Class WriteFile và ReadFile để đọc ghi dữ liệu như danh sách bạn bè,
tin nhắn offline, lưu tin nhắn trên file.
1.4.3. Các lớp trong Package Protocol
- Các lớp được implements Serializable để có thể truyền được trong mạng
(ghi vào socket). Có thể ghi xuống file.
1.5. Mô tả các chức năng, xử lý dữ liệu:
1.5.1. Phân loại yêu cầu từ client
LTW_C24 Trang 10
1.5.2. Đăng ký User.
- Client nhập username, password (không có ký tự trắng) sau đó sẽ gửi
lên server, server kiểm tra nếu username đã tồn tại sẽ gửi thông báo về
cho client. Ngược lại server sẽ lưu password vào “scr\UserProfile\tên
user\pass.txt”.
1.5.3. Chat, gửi file giữa nhiều client với nhau.
LTW_C24 Trang 11
1.5.4. Xử lý dữ liệu trên client.
LTW_C24 Trang 12
1.5.5. Chat Group.
- User sẽ gởi yêu cầu chat group. User khác đồng ý chat group sẽ hiển thị

trên cửa sổ chat group. Đồng thời server sẽ lưu group này vào mảng để
quản lí. Khi 1 thành viên trong group gởi thông điệp server sẽ gửi thông
điệp cho tất cả thành viên trong nhóm.
1.5.5.1. Giai đoạn 1: Mời vào group.
LTW_C24 Trang 13
1.5.5.2. Giai đoạn 2: Gửi broadcast cho toàn group.
1.5.6. Thay đổi giao diện cho client.
LTW_C24 Trang 14
- Chọn giao diện và đổi. Tại client, chức năng nhớ theme đã sử dụng trước đó được
sử dụng cho lần mở chương trình chat lần sau.
- Sử dụng 1 số thư viện dao diện(look and feel) để mà cho chương trình thay đổi
giao diện linh động. Kèm theo chức năng lưu lại giao diện đã chọn và load lại ở
lần sử dụng sau.
1.5.7. Chơi caro.
- Chức năng nâng cao mang tính giải trí, bạn sẽ mời friends chơi game,
khi bạn chát đồng ý, cửa sổ đánh caro sẽ xuất hiện. Tọa độ khi đánh vào
ô caro sẽ được gửi đi. Hàm xử lý thắng thua được code trên client.
LTW_C24 Trang 15
2. Các thiết kế giao diện màn hình:
2.1. Khung quản lý:
2.2. Khung chat:
2.3. Khung chơi caro:
2.4. Gửi, nhận File:
2.5. Giao diện About Us:
2.6. Các background để người dùng lựa chọn:
3. Cài đặt và thử nghiệm:
IV. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN:
1. Những khó khăn, thuận lợi khi thực hiện chương trình:
• Thuận lợi:
 Là chương trình cơ bản, kinh điển nhất trong lập trình mạng bằng java.

 Tài liệu tham khảo phong phú.
• Khó khăn:
 Lần đầu tìm hiểu xây dựng chương trình.
 Phát triển mô hình chat cơ bản thành chương trình có nhiều chức năng như:
gửi file, chat group, drag and drop, chơi caro.
2. Ưu điểm:
o Giao diện đẹp, tiện dụng, backgroup linh hoạt.
o Được xây dựng dưới dạnh thread, có thể chat nhiều client, thực hiện các chức
năng song song.
o Cung cấp chương trình game thư giãn.
o Có truyền tải emotions giúp chương trình sinh động, đẹp mắt hơn.
3. Nhược điểm:
o Chưa truyền được âm thanh, video.
o Chưa sử dụng database server.
4. Hướng phát triển trong tương lai:
Do thời gian hạn hẹp nên còn nhiều ý tưởng nhóm chúng em chưa thực hiện được,
nhóm xác định sẽ phát triển trong tương lai bổ sung nhiều chức năng hơn, cho phép chat
voice, thực hiện lưu thông tin user trên database…Nhóm dự định mỗi năm sẽ cho ra một
version mới kế thừa và phát huy từ versition 1.0 .
5. Phân công thực hiện:
6. Tổng kết:
LTW_C24 Trang 16
Sau một thời gian không dài nhưng nhóm chúng em đã đoàn kết chung tay góp sức xây
dựng được đồ án tương đối thành công với tên là “LAN CHAT” có tính năng đa dạng và
phong phú giúp hỗ trợ giao tiếp qua mạng. Nhóm chúng em có thể hoàn thành được đồ án
này là nhờ một phần lớn từ thầy hướng dẫn người đã giúp đỡ và tạo điều kiện cho chúng em.
Một lần chúng em xin chân thành cảm ơn!
7. Tài liệu tham khảo:
 Slide bài học.
 Các bài tập hướng dẫn khi đi thực hành môn lập trình java.

 Các web như:
o .
o .
o
 Ebooks: Java cook book, Java IO 2
nd
Edition (2006), javacore.
Hết
LTW_C24 Trang 17

×