Chương trình trên máy server... Chương trình trên máy Client2.a.
Trang 1BÀ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
Mã s sinh viên ố : 102114071123
Cán b h ộ ướ ng d n ẫ : Huỳnh Công Pháp
Đà N ng 2011 ẵ
Trang 3CH ƯƠ 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óế ị ỗ ợ ạ ọ ể ấ ả ổ ộ ấ
Trang 4CH ƯƠ 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
Trang 5Ph 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ế ố ệ ử ữ ệ ấ ứ ự ế ậ ế ố ề ữ
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ủ ề ữ ệ ộ ứ ụ ả ả ả
- 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.ắ ế ổ
Trang 6• K t n i/Đóng k t n i đ n máy tính xa qua c ng đã g nế ố ế ố ế ở ổ ắ
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).ứ ọ ấ
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ấ ớ ữ ệ
Trang 7CH ƯƠ 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
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.ậ ấ
Trang 8CH ƯƠ 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 ả ễ ạ http://eclipse.org/
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
Trang 9Các ch c năng trên chứ ương trình client
Minh h a vi c chat trên h th ngọ ệ ệ ố
Trang 10Ph n 3 : Ch ầ ươ ng trình
1 Chương trình trên máy server
a.File Command.java
b File NewSocket.java
Trang 12c File Server.java
Trang 152 Chương trình trên máy Client
2.a Command.java
Trang 162.b Transport.java
Trang 18c File Client.java