TR NG Đ I H C BÁCH KHOAƯỜ Ạ Ọ
KHOA CÔNG NGH THÔNG TINỆ
B MÔN M NG VÀ TRUY N THÔNGỘ Ạ Ề
BÀI T P L N L P TRÌNH M NGẬ Ớ Ậ Ạ
Đ tàiề
Xây d ng ch ng trình chat roomự ươ
Sinh viên : Võ Quang Hòa
L pớ : 07T4
Mã s sinh viênố : 102114071123
Cán b h ng d n ộ ướ ẫ : Huỳnh Công Pháp
Đà N ng 2011ẵ
T o ch ng trình chát roomạ ươ Trang 2
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 3
CH NG 1. M Đ UƯƠ Ở Ầ
Ph n 1. 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, th y Huỳnh Công Pháp đãờ ậ ọ ề ậ ạ ầ
giao bài t p l n “Xây d ng ch ng trình chat room”, đ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.ể ơ ề ạ ề ậ ạ ộ ự ậ ấ ị
Ph n 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ụ ể ở ộ ể ấ ị ụ ề ử ụ ị
o Mô hình Client/Server
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 5
Ph n 3 : Gi i thi u giao th c IP/TCPầ ớ ệ ứ
1. Gi i thi u v TCPớ ệ ề
Giao th c TCP (Transmission Control Protocol) là giao th c h ng k t n iứ ứ ướ ế ố
(connection-oriented), nó đòi h i thi t l p k t n i tr c khi b t đ u g i d li u và k tỏ ế ậ ế ố ướ ắ ầ ử ữ ệ ế
thúc k t n i khi vi c g i d li u hoàn t t theo đúng th t : thi t l p k t n i, truy n dế ố ệ ử ữ ệ ấ ứ ự ế ậ ế ố ề ữ
li u và k t thúc k t n i.ệ ế ế ố
2. Gi i thi u v IP.ớ ệ ề
IP là đ a ch c a m t máy tính trên m ng, d a vào đ a ch IP giao th c TCP có thị ỉ ủ ộ ạ ự ị ỉ ứ ể
truy n d li u chính xác t m t máy này qua máy kia thông qua h th ng m ng. trênề ữ ệ ừ ộ ệ ố ạ Ở
m ng, m t máy tính s có m t đ a ch IP khác nhau, t đ a ch IP có th bi t đ c máyạ ộ ẻ ộ ị ỉ ừ ị ỉ ể ế ượ
nào trên m ng và ng c l i.ạ ượ ạ
3. Gi i thi u v c ng Port.ớ ệ ề ổ
V i IP, giao th c TCP ch m i có th truy n d li u chính xác t máy này qua máy kiaớ ứ ỉ ớ ể ề ữ ệ ừ
mà ch a th truy n chính xác đ n t ng ng d ng trên máy đ c. Hi n nay, các h th ngư ể ề ế ừ ứ ụ ượ ệ ệ ố
máy thông th ng ho t đ ng theo ch đ đa nhi m, nghĩa là có nhi u ng d ng ch yườ ạ ộ ế ộ ệ ề ứ ụ ạ
cùng m t lúc và trong đó có th có nhi u ng d ng s d ng d ch v m ng. Yêu c u, khiộ ể ề ứ ụ ử ụ ị ụ ạ ầ
máy ch A truy n d li u cho m t ng d ng u trên máy B thì trên máy B ph i đ m b oủ ề ữ ệ ộ ứ ụ ả ả ả
d li u đó ph i đ n đ c ng d ng u, ch không ph i ng d ng v. ữ ệ ả ế ượ ứ ụ ứ ả ứ ụ
Đ th c hi n đi u đó thì máy ch A khi truy n d li u đi thì trên d li u đó có m tể ự ệ ề ủ ề ữ ệ ữ ệ ộ
thành ph n thông tin giúp máy B xác đ nh đ c đúng ng d ng u. Ph n thông tin đó chínhầ ị ượ ứ ụ ầ
là đ a ch port trên máy B, nó có th hi u là l c m o trên máy B mà ng d ng u đã đăngị ỉ ể ể ỗ ắ ả ứ ụ
ký đ đ c quy n s d ng nh n 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. Nó có đ cự ế ị ỉ ộ ố ị ừ ế ặ
đi m :ể
- Giá tr t 0 đ n 1023 là các c ng ph bi n dành cho các ng d ng thông d ng nhị ừ ế ổ ổ ế ứ ụ ụ ư
http: 80, mail : 25, fpt : 21, Telnet 23 Các giá tr còn l i có th đ c s d ng linhị ạ ể ượ ử ụ
ho t.ạ
T o lu ng d li u vào raạ ồ ữ ệ
Đóng k t n i.ế ố
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ấ ớ ữ ệ
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 7
CH NG 3 : PHÂN TÍCH THI T K CH NG TRÌNHƯƠ Ế Ế ƯƠ
Ph n 1 : Phân tích yêu c uầ ầ
Vi t ch ng trình cho phép chat room gi a nhi u ng i qua m ng.ế ươ ữ ề ườ ạ
Ph n 2 : Phân tích ch c năng.ầ ứ
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ậ ớ ộ ườ ự ọ
Nh n danh sách các nick đang online trên server.ậ
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.
Nh n tin nh n t nickname khác g i t i.ậ ắ ừ ử ớ
Đăng xu t tài kho n.ấ ả
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ạ ổ ế ố ẵ ậ ự ế ố ừ
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 đã có m t ai đó đăng nh p t tr c v i nickname đó thì cho ng iế ộ ậ ừ ướ ớ ườ
đăng nh p tr c đó ph i đăng xu t và cho ng i m i đăng nh p vào.ậ ướ ả ấ ườ ớ ậ
Tr v danh sách các nickname online cho nickname có yêu c u.ả ề ầ
Nh n tin nh n t m t nickname và chuy n ti p t i các nickname khác t ngậ ắ ừ ộ ể ế ớ ươ
ng theo yêu c u c a nickname g i.ứ ầ ủ ử
Lo i nickname khi nickname yêu c u đăng xu t.ạ ầ ấ
Cho phép ng i s d ng theo dõi các thành viên đăng nh p, đăng xu t.ườ ử ụ ậ ấ
T o ch ng trình chát roomạ ươ Trang 12
c. File Server.java
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 13
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 14
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 15
2. Ch ng trình trên máy Clientươ
2.a. Command.java
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 16
2.b. Transport.java
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 17
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 18
c. File Client.java
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 19
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 20
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 21
Võ Quang Hòa – L p 07T4ớ