Tải bản đầy đủ (.pdf) (21 trang)

BÀI TẬP LẬP TRÌNH MẠNG CHƯƠNG TRÌNH CHATROOM 2

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 (347.03 KB, 21 trang )

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ụ ể ở ộ ể ấ ị ụ ề ử ụ ị


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.ậ ạ ớ ọ ấ ử ụ ớ
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 4
CH NG 2. C S LÝ THUY TƯƠ Ơ Ở Ế
Ph n 1 : Yêu c u c a đ tàiầ ầ ủ ề
Vi t ch ng trình Client/Server cho phép nhi u ng i s d ng có th g i tin nh n choế ươ ề ườ ử ụ ể ử ắ
nhau d i d ng m t phòng chat room.ướ ạ ộ
Ph n 2 : Gi i thi u mô hình Client/Serverầ ớ ệ
Server hi u nôm na là máy ch , th ng là m t h th ng máy l n, có b x lý m nh,ể ủ ườ ộ ệ ố ớ ộ ử ạ
có kh năng ho t đ ng đáng tin c y, có kh năng l u tr d li u l n, nó chuyên qu n lý tàiả ạ ộ ậ ả ư ữ ữ ệ ớ ả
nguyên (ch y u là c s d li u), cung c p các d ch v m ng cho các máy khách (client) sủ ế ơ ở ữ ệ ấ ị ụ ạ ử
d ng. Bình th ng nó ch y su t th i gian th c và s n sàng ch p nh n các yêu c u k t n i vàụ ườ ạ ố ờ ự ẵ ấ ậ ầ ế ố
các yêu c u d ch v khác t máy khách.ầ ị ụ ừ
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 đi 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.ậ ượ ầ ẻ ử ợ ả ờ ạ
-

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.ạ

- M i c ng trong m i th i đi m đ c s d ng cho t i đa là 1 ng d ng. Ví d nh m tỗ ổ ỗ ờ ể ượ ử ụ ố ứ ụ ụ ư ộ
ng d ng nào đó đã s d ng c ng 55 thì ng d ng 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.ữ ừ ứ ụ ướ ư ổ ạ
4. Gi i thi u v Socket.ớ ệ ề
- 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.ắ ế ổ
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 6
• K t n i/Đóng k t n i đ n máy tính xa qua c ng đã g nế ố ế ố ế ở ổ ắ
• G i/nh n d li uử ậ ữ ệ
• L ng nghe d li u đ nắ ữ ệ ế
Th c ch t, Socket ch ng qua 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. Chính vì s k t h p đó mà nó tr thành m t khái ni m mà t đó, các ngônứ ụ ử ụ ự ế ợ ở ộ ệ ừ
ng l p trình có ch a các gói, các giao di n l p trình (API) đ h tr các nhà l p trình dữ ậ ứ ệ ậ ể ỗ ợ ậ ễ
dàng trong vi c lâp trình liên quan đ n m ng qua giao th c TCP. Đi n hình là ngôn ng Javaệ ế ạ ứ ể ữ
mà em s gi i thi u ngay sau đây.ẻ ớ ệ
Ph n 4 : L p trình m ng trong Java.ầ ậ ạ
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 đó.ở ộ ổ ế ố ẵ ạ ộ ổ
 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.ắ ờ ợ ầ ế ố ổ ế ố ầ
 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.ế ố ử ụ
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 đó.ế ố ớ ộ ủ ị ỉ ố ệ ổ ủ

 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.ườ ử ụ ậ ấ

Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 8
CH NG 4 : TRI N KHAI TH C HI N VÀ K T QUƯƠ Ể Ự Ệ Ế Ả
Ph n 1 : Môi tr ng tri n khaiầ ườ ể
- H đi u hành : Microsoft Window 7, Microsoft Window XP (Ch y máy o)ệ ề ạ ả
- IDE : Eclipse Helios Service Release 2. T i mi n phí t i ả ễ ạ />Ph n 2 : 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.ữ
- V i ph m vi nh c a đ tài, ch a có th c hi n m t s ch c năng mà có th tri n khaiớ ạ ỏ ủ ề ư ự ệ ộ ố ứ ể ể
đ c nh truy n file, g i tin nh n có đ nh d ng gi ng nh các ng d ng chat th cượ ư ề ử ắ ị ạ ố ư ứ ụ ự
s đang có.ự
- Các thao tác trên giao di n cũng ch a th c s ti n l i. Vi c th nghi m ch m i d ngệ ư ự ự ệ ợ ệ ử ệ ỉ ớ ừ
l i trên máy m ng lan (Gi a máy th t và máy o) và trên máy c c b (S d ng đ aạ ở ạ ữ ậ ả ụ ộ ử ụ ị
ch localhost).ỉ
M t s hình nh minh h aộ ố ả ọ

Ch c năng qu n lý c a ch ng trình trên server.ứ ả ủ ươ
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 9
Các ch c năng trên ch ng trình clientứ ươ
Minh h a vi c chat trên h th ngọ ệ ệ ố
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 10
Ph n 3 : Ch ng trìnhầ ươ
1. Ch ng trình trên máy server.ươ
a.File Command.java
b. File NewSocket.java
Võ Quang Hòa – L p 07T4ớ
T o ch ng trình chát roomạ ươ Trang 11
Võ Quang Hòa – L p 07T4ớ

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ớ

×