Você está na página 1de 3

aula28 Sockets em Java - UDP.

doc
Mac2121s2004 - BMAC - Marcilio
Aula 28 - Sockets em Java - UDP
e!em"lo a#ai!o mostra uma a"lica$%o clie&te servidor.
clie&te e&via os dados rece#idos do teclado e os e&via ao servidor. 'm se(uida rece#e
uma me&sa(em do servidor e mostra &o v)deo.
servidor rece#e me&sa(em do clie&te* tra&s+orma as letras "ara mai,sculas e ree&via a
mesma me&sa(em ao clie&te.
e!em"lo est- &o livro.
/edes de Com"utadores e 0&ter&et 1 uma &ova a#orda(em
2urose3/oss
Addiso&-4esle5
6i7 al(umas ada"ta$8es. Se voc9 :uiser testar clie&te e servidor &a mesma m-:ui&a*
modi+i:ue o e&dere$o 0P do servidor ;&o UDPClie&t "ara 127.0.0.1<.
UDPClient.java
// L uma linha do teclado
// Envia o pacote (linha digitada ao !e"vido"
// L um pacote (linhado !e"vido" e mo!t"a no v#deo
import java.io.*; // cla!!e! pa"a input e output !t"eam! e
import java.net.*;// Datag"ama$oc%et&'net(dd"e!!&Datag"amaPac%et
class UDPClient {
public static void main(String args[] t!ro"s #$ception
{
// c"ia o !t"eam do teclado
%u&&ered'eader in(romUser )
ne" %u&&ered'eader(ne" *nputStream'eader
(S+stem.in;
// decla"a !oc%et cliente
Datag"am$oc%et client$oc%et ) ne* Datag"am$oc%et(+

// o,tem ende"e-o 'P do !e"vido" com o D.$
'net(dd"e!! 'P(dd"e!! )
'net(dd"e!!.get/0.ame(1ho!tname1+

b+te[] sendData ) ne" b+te[,-./];
b+te[] receiveData ) ne" b+te[,-./];
// l uma linha do teclado
String sentence ) in(romUser.read0ine(;
sendData ) sentence.get%+tes(;

// c"ia pacote com o dado& o ende"e-o do !e"ve" e po"ta do !e"vido"
Datag"amPac%et !endPac%et )
ne* Datag"amPac%et(!endData& !endData.length& 'P(dd"e!!& 2374+
//envia o pacote
client$oc%et.!end(!endPac%et+
aula28 Sockets em Java - UDP.doc
Mac2121s2004 - BMAC - Marcilio
aula28 Sockets em Java - UDP.doc
Mac2121s2004 - BMAC - Marcilio

// decla"a o pacote a !e" "ece,ido
Datag"amPac%et "eceivePac%et )
ne* Datag"amPac%et("eceiveData& "eceiveData.length+
// "ece,e pacote do !e"vido"
client$oc%et."eceive("eceivePac%et+

// !epa"a !omente o dado "ece,ido
String modi&iedSentence )
ne" String(receivePac1et.getData(;

// mo!t"a no v#deo
S+stem.out.println(2('34 S#'5#'62 7 modi&iedSentence;
// 5echa o cliente
clientSoc1et.close(;
8
8
aula28 Sockets em Java - UDP.doc
Mac2121s2004 - BMAC - Marcilio
aula28 Sockets em Java - UDP.doc
Mac2121s2004 - BMAC - Marcilio
UDP$e"ve".java
// 6ece,e um pacote de algum cliente
// $epa"a o dado& o ende"e-o 'P e a po"ta de!te cliente
// 7"an!5o"ma em mai8!cula
// Envia ao cliente& u!ando o ende"e-o 'P e a po"ta "ece,ido!
// 9olta ao in#cio
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[] t!ro"s #$ception
{
// c"ia !oc%et do !e"vido" com a po"ta 2374
Datag"am$oc%et !e"ve"$oc%et ) ne*
Datag"am$oc%et(2374+

b+te[] receiveData ) ne" b+te[,-./];
b+te[] sendData ) ne" b+te[,-./];
"!ile(true
{
// decla"a o pacote a !e" "ece,ido
Datag"amPac%et "eceivePac%et )
ne* Datag"amPac%et("eceiveData&
"eceiveData.length+

// "ece,e o pacote do cliente
!e"ve"$oc%et."eceive("eceivePac%et+

// pega o! dado!& o ende"e-o 'P e a po"ta do cliente
// pa"a pode" manda" a m!g de volta
$t"ing !entence ) ne* $t"ing(
"eceivePac%et.getData(+
'net(dd"e!! 'P(dd"e!! )
"eceivePac%et.get(dd"e!!(+
int po"t ) "eceivePac%et.getPo"t(+

// t"an!5o"ma em mai8!cula!
String capitali9edSentence )
sentence.toUpperCase(;
sendData ) capitali9edSentence.
get%+tes(;
// monta o pacote com ende"-o 'P e po"ta
Datag"amPac%et !endPac%et )
ne* Datag"amPac%et(!endData& !endData.length&
'P(dd"e!!& po"t+

// envia ao cliente
!e"ve"$oc%et.!end(!endPac%et+
8
8
8
aula28 Sockets em Java - UDP.doc
Mac2121s2004 - BMAC - Marcilio

Você também pode gostar