PEMROGRAMAN JARINGAN APLIKASI CHATING DENGAN REMOTE METHODE INVOCATION
OLEH : KELOMPOK
MUHAMMAD MAPPANYOMPA
H13114306
MIFTAH FARID
H13114308
JONATHAN HANS H13114320
PROGRAM STUDI ILMU KOMPUTER DEPARTEME DEPARTEMEN N MATEMATIKA MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS HASANUDDIN MAKASSAR 2016
Apl!"# $%"& #'(')%"*" ('*+"* RMI : RMI "("l"% #"l"% #"&, -"+"* (") J2SE ."*+ (+,*"!"* ,*&,! /'/-"*+,* "pl!"# &')(#&)-,# /'*++,*"!"* -"%"#" J"" RMI "("l"% !,/p,l"* !'l"# ("l"/ J"" ."*+ (+,*"!"* ,*&,! /'*"*+"* p'/"*++l"* *"&*5 /'&%( #'")" ")"! ",% )'/&'5 ("l"/ #,"&, ")*+"* "&", I*&')*'&
P')&"/" : M'/-,"& P)'& ( IDE J"" ."*+ &')() (") : 7$%"& $l'*& 7$%"& S')')
1. Bagian Server M'/-,"& I*&')"' -"), ('*+"* *"/" ChatServerInt $%"&S')')9 N';9 I*&')"'
U*&,! !'l"# I*&')"' !&" *"/"!"* : ChatServerInt /p)& "")/<= /p)& "",&l<= p,-l *&')"' $%"&S')')I*& '>&'*(# R'/&'? p,-l -l'"* l+* $%"&$l'*&I*& "5&%);# R'/&'E>'p&* = p,-l ( p,-l#% S&)*+ #5&%);# R'/&'E>'p&* = p,-l V'&) +'&$**'&'(5 &%);# R'/&'E>'p&* = @ P'*'l"#"* : $%"&S')')I*& * (-,"& ,*&,! p'/'-'*&,!"* *&')"' ( !'l"# S')') (/"*" "!"* (+,*"!"* *"*&*." #'-"+" RMI (") p)+)"/ ."*+ "!"* (-,"&
,"& I*&')"' -"), ('*+"* *"/" : ChatCientInt $%"&S')')9 N';9 I*&')"' ')!,& #.*&"> I*&')"' : /p)& "")/<= p,-l *&')"' $%"&$l'*&I*& '>&'*(# R'/&'? p,-l ( &'ll S&)*+ *"/'5&%);# R'/&'E>'p&* = p,-l S&)*+ +'&N"/'5&%);# R'/&'E>'p&* = @ P'*'l"#"* : $%"&$l'*&I*& * (-,"& ,*&,! p'/'-'*&,!"* *&')"' ( !'l"# $l'*& (/"*" "!"* (+,*"!"* *"*&*." #'-"+" RMI (") p)+)"/ ."*+ "!"* (-,"& M'/-,"& !'l"# $%"&S')') ("l"/ $%"&S')'): ChatServer /p)& "")/<= /p)& "")/#')')U*"#&R'/&'O-'&= /p)& "",&l<= p,-l l"## $%"&S')') '>&'*(# U*"#&R'/&'O-'& /pl'/'* $%"&S')')I*&? p)"&' V'&) B*'; V'&)5= p,-l $%"&S')')5 &%);# R'/&'E>'p&*?@ p,-l -l'"* l+*$%"&$l'*&I*& "5 &%);# R'/&'E>'p&*? S.#&'/,&p)*&l*"+'&N"/'5 C +& **'&'(5= "&'llY, %"' $**'&'( #,'##,ll.5= p,-l#%"+'&N"/'5C %"# ,#& **'&'(5= "(("5= )'&,)* &),'= @ p,-l ( p,-l#%S&)*+ #5 &%);# R'/&'E>'p&*? S.#&'/,&p)*&l*#5= )*& B0=#'5=CC5? &).? $%"&$l'*&I*& &/pB$%"&$l'*&I*&5+'&5= &/p&'ll#5= @"&%E>'p&* '5? p)-l'/ ;&% &%' l'*& *& **'&'( '&&') & )'/' & @ @
@ p,-l V'&) +'&$**'&'(5 &%);# R'/&'E>'p&*? )'&,)* = @ @
P'*'l"#"* : •
P"(" ,*+# !gin "!"* ('&"! U#')*"/' (") ,#') ."*+ #,("% &')!*'!# ('*+"* #')') l"l, #')') "!"* /'/-')&"%, Y, %"' $**'&'( #,'##,ll. di client. Setelah itu server akan mempublish ke seluruh client Username yang baru terhubung dengan server, dan Username akan ditambahkan ke dalam vector yang dibuat. Dan hasil pengembalian nilai berupa true.
•
P"(" p)#'(,) "#$i%h "!"* /'*'&"! U#')*"/' ."*+ -"), &')%,-,*+ !' #')') !' #'/," l'*&
M'/-,"& !'l"# ("l"/ p)'! $%"&S')') ('*+"* *"/" : StartServer')!,& S*&"!# S&")&S')') 1 2 3 4 6
/p)& "")/<= /p)& "")/#')')<= p,-l l"## S&")&S')') ? p,-l #&"& ( /"*S&)*+ ")+#5 ? &). ? S.#&'/#'&S',)&.M"*"+')*'; RMIS',)&.M"*"+')55= "")/)'+#&).L"&'R'+#&).)'"&'R'+#&).105=
8 10 11 12 13 14 1 16 @ 1 @
$%"&S')')I*& -B*'; $%"&S')')5= N"/*+)'-*()/:121681102/."- -5= S.#&'/,&p)*&l*S.#&'/ $%"& S')') # )'"(.5= @"&% E>'p&* '5 ? S.#&'/,&p)*&l*$%"& S')') "l'(: C '5= @
P'*'l"#"* : P"(" !'l"# ,&"/" "!"* ( R'+#&). p"(" p)& 10 ("* "!"* (+,*"!"* #')') ('*+"* p'*++,*""* N"/*+)'-*()/:121681102/."- -5= yang berarti server pada IP 192.1!.1.1"2. Dan setelah server disetting seperti yang diatas maka akan dicetak # S.#&'/ $%"& S')') # )'"(. $ %ang menendakan bah&a server sudah siap digunakan. Sedangkan 'ika tecetak # $%"& S')') "l'(: $ berarti ter'adi kesalahan pada port ataupun ip server yang disetting.
2 Cient M'/-,"& P)'! $l'*& ('*+"* *"/" : ChatCientPr!&
M'/-,"& I*&')"' ('*+"* *"/" : ChatCientInt ("l"/ p)'! ChatCientPr!& M'/-,"& I*&')"' ('*+"* *"/" : ChatServerInt ("l"/ p)'! ChatCientPr!& M'/-,"& K'l"# -"), : ChatCient p"(" p)'! ChatCientPr!&
K'l"# $%"&$l'*& : 1 2 3 4
/p)& "")/<= /p)& "")/#')')U*"#&R'/&'O-'&= p,-l l"## $%"&$l'*& '>&'*(# U*"#&R'/&'O-'& /pl'/'* $%"&$l'*&I*&?
6 8 10 11 12 13 14 1 16 1 18 1 20 21 22 23 @
p)"&' S&)*+ *"/'= p)"&' $%"&UI ,= p,-l $%"&$l'*& S&)*+ *5 &%);# R'/&'E>'p&* ? *"/'B*= @ p,-l ( &'llS&)*+ #&5 &%);# R'/&'E>'p&*? S.#&'/,&p)*&l*#&5= ,;)&'M#+#&5= @ p,-l S&)*+ +'&N"/'5 &%);# R'/&'E>'p&*? )'&,)* *"/'= @ p,-l ( #'&GUI$%"&UI &5? ,B& = @
P'*'l"#"* : •
•
• •
P"(" K*#&),!&) ChatCient (#* "!"* ( +,*"!"* p')"&) p'*,+"#"* B ,*&,! /'/-')!"* *l" p"(" ")"-'l l!"l *"/' ('*+"* *l" * P"(" P)#'(,) te -'),*+# ,*&,! /'*'&"! p'/-')&"%,"* -"%;" ,#') #,("% &')%,-,*+ !' #')') ("* #,("% ("p"& /'l"!,!"* "!&&"# %"&&*+ P"(" F,*+# getNa'e -'),*+# ,*&,! /'*+'/-"l!"* *l" *"/" P"(" P)#'(,) %etG(I -'),*+# ,*&,! /'*#'& &"/pl"* *&')"'
M'/-,"& K'l"# Chat(I ("l"/ p)'! ("l"/ p)'! ChatCientPr!& 1 2 3 4 6 8 10 11 12 13 14
1 16 1 18 1 20 21 22 23
24 2 26 2 28 2 30 31 32 33 34 3 36 3 38 3 40 41 42 43 44 4
/p)& "">#;*+<= /p)& "">#;*+-)(')<= /p)& """;&<= /p)& """;&''*&<= /p)& "")/N"/*+= /p)& "",&l<= p,-l l"## $%"&UI? p)"&' $%"&$l'*& l'*&= p)"&' $%"&S')')I*& #')')= p,-l ( ($**'&5? **'&+'&T'>&5',"l#$**'&55? *"/'+'&T'>&5l'*+&%525 ? JOp&*P"*'#%;M'##"+'D"l+)"/' Y, *''( & &.p' " *"/'5= )'&,)*=@ p+'&T'>&5l'*+&%525? JOp&*P"*'#%;M'##"+'D"l+)"/' Y, *''( & &.p' "* IP5= )'&,)*=@ &).? l'*&B*'; $%"&$l'*&*"/'+'&T'>&55= l'*&#'&GUI&%#5= #')')B$%"&S')')I*&5N"/*+l!,p)/:Cp+'&T'>&5C/."-5= #')')l+*l'*&5= ,p("&'U#')##')')+'&$**'&'(55= **'&#'&T'>&D#**'&5= @"&%E>'p&* '5 ?'p)*&S&"!T)"'5= JOp&*P"*'#%;M'##"+'D"l+)"/' ERROR ;' ;,l(*Q& **'&5=@ @'l#'? ,p("&'U#')#*,ll5= **'&#'&T'>&$**'&5= '&&') & /pl'/'*& L+,& @ @ p,-l ( #'*(T'>&5? **'&+'&T'>&5',"l#$**'&55? JOp&*P"*'#%;M'##"+'D"l+)"/' Y, *''( & **'& )#&5= )'&,)*= @ S&)*+ #&B& +'&T'>&5= #&BC*"/'+'&T'>&5C C#&= & #'&T'>&5= R'/' ., ")' +*+ & /pl'/'*& ) )'/&' *"&* &).? #')')p,-l#%#&5= @"&%E>'p&* '5?'p)*&S&"!T)"'5=@ @ p,-l ( ;)&'M#+S&)*+ #&5? &>#'&T'>&&>+'&T'>&5C*C#&5= @
46 p,-l ( ,p("&'U#')#V'&) 5? 4 D'",l&L#&M('l l#&M('l B *'; D'",l&L#&M('l5= 48 B*,ll5 ) *& B0=#'5=CC5? 4 &).? S&)*+ &/pB$%"&$l'*&I*&5+'&55+'&N"/'5= 0 l#&M('l"((El'/'*&&/p5= 1 @"&%E>'p&* '5?'p)*&S&"!T)"'5=@ 2 @ 3 l#&#'&M('ll#&M('l5= 4 @ 6 p,-l #&"& ( /"*S&)*+ ")+#5? S.#&'/,&p)*&l*H'll )l( 5= 8 $%"&UI B*'; $%"&UI5= @ 60 61 U#') I*&')"' (' 62 p,-l $%"&UI5? 63 )"/'B*'; JF)"/'G),p $%"&5= 64 JP"*'l /"* B*'; JP"*'l5= 6 JP"*'l &p B*'; JP"*'l5= 66 JP"*'l * B*'; JP"*'l5= 6 JP"*'l -&&/ B*'; JP"*'l5= 68 pB*'; JT'>&F'l(5= 6 & B*'; JT'>&F'l(5= 0 *"/'B*'; JT'>&F'l(5= 1 &>B*'; JT'>&A)'"5= 2 **'&B*'; J,&&*$**'&5= 3 J,&&* -&B*'; J,&&*S'*(5= 4 l#&B*'; JL#&5= /"*#'&L".,&*'; )(')L".,&55= 6 &p#'&L".,&*'; G)(L".,&1055= *#'&L".,&*'; )(')L".,&55= 8 -&&/#'&L".,&*'; )(')L".,&55= &p"((*'; JL"-'lY,) *"/': 55=&p"((*"/'5= 80 &p"((*'; JL"-'lS')') A(()'##: 55=&p"((p5= 81 &p"((**'&5= 82 *"((*'; JS)llP"*'&>5 )(')L".,&$ENTER5= 83 *"((l#& )(')L".,&EAST5= 84 -&&/"((& )(')L".,&$ENTER5= 8 -&&/"((-& )(')L".,&EAST5= 86 /"*"((&p )(')L".,&NORTH5= 8 /"*"((* )(')L".,&$ENTER5= 88 /"*"((-&&/ )(')L".,&SOUTH5= 8 /"*#'&)(')*'; E/p&.)(')10 10 10 105 5= 0 E'* 1 **'&"((A&*L#&'*')*'; A&*L#&'*')5? 2 p,-l ( "&*P'))/'(A&*E'*& '5? ($**'&5= @ @5= 3 -&"((A&*L#&'*')*'; A&*L#&'*')5? 4 p,-l ( "&*P'))/'(A&*E'*& '5? #'*(T'>&5= @ @5= & "((A&*L#&'*')*'; A&*L#&'*')5? 6 p,-l ( "&*P'))/'(A&*E'*& '5? #'*(T'>&5= @ @5= 8 )"/'#'&$*&'*&P"*'/"*5= )"/'#'&S'6006005=
100 101 102 103 104 10 106 10 @
)"/'#'&V#-l'&),'5= @ JT'>&A)'" &>= JT'>&F'l( & p *"/'= J,&&* **'&= JL#& l#&= JF)"/' )"/'=
P'*'l"#"* : •
•
•
•
•
P"(" P)#'(,) )!C!nne*t "!"* (l"!,!"* p'*+%,-,*+"* l'*& ("* #')') (/"*" !" #,("% &')**'& /"!" "!"* ( '! "p"!"% ,#')*"/' #,("% ( # "&", -'l,/ /*/"l 3 !")"!&')5 ("* IP "(()'## #,("% ( # "&", -'l,/ J!" T')"( !'#"l"%"* p"(" p'*+#"* IP "(()'## /"!" "!"* (/,*,l!"* ("l+ ERROR ;' ;,l(*Q& **'& P"(" P)#'(,) %en)Te+t * "!"* ( '&"! &'>& ."*+ #,("% !&" &,l# ,*&,! l'*& l"* ('*+"* /'*++,*"!"* p)#'(,) "#$i%h ('*+"* #.")"& l'*& #,("% &')%,-,*+ !' #')') P"(" P)#'(,) ,riteM%g -'),*+# ,*&,! /'*'&"! p'#"* p"(" p'#"* ("l+ P"(" P)#'(,) #")ate(%er -'),*+# ,*&,! /'*"/pl!"* l#& ,#') ."*+ &')%,-,*+ !' #')') /'l"l, l#& '&) ."*+ (&"/-"%!"* p"(" #""& ,#') &')%,-,*+ !' #')') P"(" 'ain /'&%( "!"* ('&"! H'll )l( l"l, /'/-,"& -'! ,*&,! /'*"l"*!"* p)+)"/ %"&&*+ ."*+ &"( #,("% (-,"& ('*+"* &"/pl"* GUI
S/,l"# P)+)"/ : M'*"l"*!"* S')') : S')') ("l"*!"* /'l"l, !'l"# StartServer P'*'*&,"* #')') "(()'## %"),# ( &'*&,!"* #'#," ('*+"* "l"/"& IP :
S')') "(()'## ( #'#,"!"* : N"/*+rebind )/:101604012/."- -5= K'&!" !'l"# &'l"% ( "l"*!"* /"!" "!"* &/-,l #'-,"% p'#"* !*'!# :
K'/,("* /'*"l"*!"* Chat(I ("l"/ p)'! $l'*& :