Vous êtes sur la page 1sur 32

APS ATIVIDADES PRTICAS SUPERVISIONADAS

Cincia da Computao

DESENVOLVIMENTO DE UMA FERRAMENTA DE COMUNICAO EM REDE

Jonathan Rodrigues Alves


Gregory Ricardo C. de Moraes
Leandro Santana de Souza

RA: B3863A1
RA: A66CJC-6
RA: B20675-6

ndice
Objetivo do trabalho ---------------------------------------------------------
Introduo ----------------------------------------------------------------------
Fundamento da comunicao de dados em rede-----------------
Plano de Desenvolvimento da Aplicao ----------------------------
Projeto estrutural do Sistema -------------------------------------------Relatrio com as linhas de cdigo do Programa --------------Apresentao do Programa em Funcionamento--------------------Bibliografia --------------------------------------------------------------------FICHA DE ATIVIDADES PRTICAS SUPERVISIONADAS ------

Objetivo do trabalho
Temos como objetivo desse trabalho aprimorar nosso
desenvolvimento inicial do curso como um profissional e
futuramente um cientista da computao, j comeando a
aprender trabalhar em equipe, compartilhando idias e
tambm aprendendo cada vez mais com o prximo. O foco
desse trabalho que foi o desenvolvimento de uma ferramenta
simples de comunicao em rede.

Introduo

A comunicao em rede cada vez mais envolve a interconexo entre dois


ou mais micros, onde permite a troca de dados entre essas unidades e
otimiza os recursos de hardware e software. As redes de computadores
so muito mais comuns no dia-a-dia das pessoas do que normalmente
imagina. Um grande engano pensar que a internet a nica com qual se
convive, toda vez que se usa um carto de credito, um caixa eletrnico ou
se faz uma chamada telefnica, os servios de uma rede esto sendo
usados.
Grandes revolues das tecnologias de rede ocorreram no ano de 1792.
Naquela poca, o engenheiro francs Claude Chappe e seu irmo criaram
um novo sistema de comunicao, com isso descobriram que a longa
distancia era mais fcil identificar o ngulo de um basto do que a
presena ou ausncia de uma tocha ou de uma bandeira.
Dessa forma baseando-se nesse principio eles construram uma rede de
556 torres que trocavam informao ao longo de uma rea de 4.800 km, a
rede foi bastante usada na Frana para comunicao de militares e
nacionais durante um perodo de cerca 60 anos.
Com isso o tempo passou e varias tentativa foi feito para melhorar a
comunicao em rede, o grande desafio desenvolver tcnicas mais
rpidas e baratas de transmitir informaes, os grandes progressos nesta
rea s comearam a ocorrer quando vrios inventores comearam a
pesquisar formas de se utilizar a eletricidade ao invs de sinais ticos para
transmitir informaes, em meados de 1833 um matemtico Carl Friedrich
Gauss, um dos renomados da poca, dessa forma conseguiu permisso
para fazer com que um fio metlico de 1 km percorresse a sua cidade,
com isso ele fez os primeiros experimentos que levaram ao surgimento do
telegrafo.
Este telegrafo utilizava uma agulha que vibrava de acordo com a corrente
eltrica no fio, a cadaamplitude de vibrao (haviam 4 possveis ) que
correspondiam a um sinal diferente
Atualmente, existem milhes de maquinas conectados a internet e ela
tornou-se to poderosa que capaz de transmitir entre computadores todo
o tipo de dados como imagens, sons, vdeos, textos escritos e ate mesmo
programas de computador.

Fundamentos da comunicao de dados em rede

A indstria da informtica teve um progresso espetacular em


um curto perodo de tempo e as redes de computadores
tambm fazem parte desse crescimento. Hoje, com um
simples clique de um boto, as organizaes, com suas filiais
espalhadas pelo mundo, podem comunicar-se e obter
informaes sobre desempenho, relatrios de produo,
estoque e clientes, independentes da sua localizao.
Durante a primeira dcada dos sistemas computacionais, os
computadores eram altamente centralizados, as empresas e
universidades possuam apenas um ou dois computadores e
as grandes instituies algumas dezenas.
Todos eles eram isolados e no existia comunicao entre
eles, com o avano da comunicao a forma com que os
sistemas a computacionais operavam foi totalmente
modificado, a viso que os usurios tinham sobre os grandes
centros de computao, em que os trabalhos eram levados
para serem processados, tornou-se obsoleto, e sendo
substitudo pelas redes de computadores, agora os trabalhos
so processados por redes de computadores. O grande
numero de computadores separados fisicamente e
totalmente interligados, em termos prticos, uma rede de
computador formada por dois ou mais computadores
interligados, podendo existir uma troca de informaes entre
eles.
Esta ligao no precisa ser feita obrigatoriamente atravs
de um fio, pois existem diversas tecnologias que permitem a
troca de dados, como infravermelha, micro-ondas, satlite
etc. Em aplicaes comerciais as empresas possuem um
grande numero de computadores para desempenhar os mais
diversos tipos de aplicaes, como monitoramento, controle
de produo e estoque, gerao de planilhas e relatrios.
Na maioria dos casos em que as empresas implantam em
sua estrutura uma rede de computadores, elas sempre
obtm economia com o compartilhamento de recursos. Como
exemplo, imagine a situao em que existem vrias
impressoras individuais, sendo estas substitudas por uma
nica impressora de grande porte, com essa troca, a
manuteno facilitada, permite o acesso de um nmero
maior de usurios, alm de possibilitar o controle do nmero
de impresses. To importante quanto o compartilhamento
de recursos o compartilhamento de informaes. As
grandes instituies possuem filiais espalhadas por regies
diferentes e precisam acessar informaes que so comuns
a todas, como registro de clientes, estoque de produtos,

pedidos, etc. O fato de os usurios estarem em pases


diferentes, no impede que eles acessem esses dados como
se eles estivessem armazenados em seu computador local.
Para permitir esta facilidade de acesso, so utilizados
servidores de grande porte para o armazenamento de
informaes e os usurios, com suas estaes de trabalho,
acessam esses dados remotamente. Essa comunicao
entre computadores clientes e servidores feita atravs das
redes de computadores. Temos como exemplo de um
modelo cliente/servidor, o acesso a uma pgina na internet,
onde o usurio o cliente que solicita atravs do seu
navegador Web, um site qualquer e o servidor remoto
encarrega-se de responder solicitao do cliente. Observe
que nesse modelo existem dois processos envolvidos,
formado pelo computador cliente e o computador servidor.
Alm do compartilhamento de recursos e informaes, as
redes de computadores podem oferecer um eficiente meio de
comunicao entre seus usurios. Muitas empresas utilizam
o correio eletrnico (e-mail) para troca de informaes,
evitando o deslocamento e gasto com ligaes. Percebemos
ento, o enorme ganho que o meio corporativo obteve com a
implantao das redes de computadores. Seus dados e
dispositivos agora podem ser compartilhados e acessados
por filiais em qualquer parte do mundo, alm de promover
uma melhor comunicao entre seus usurios. No incio,
talvez o maior objetivo para se ter um computador em casa
fosse utilizar os aplicativos de texto e os jogos. Atualmente,
esse pensamento mudou radicalmente com a chegada da
internet, permitido ao usurio domstico acessar
informaes remotas, comunicao entre usurios, jogos
online e o correio eletrnico. Com a internet, os usurios
podem obter informaes dos mais variados gneros como
esporte, arte, cincia, automveis, histria, dentre muitos
outros. Os portais de informao atualizam seus artigos
minuto a minuto, proporcionando aos seus usurios
informaes recentes. Alm de ler as notcias, como se
estivesse lendo um jornal on-line, o leitor pode acompanhar
debates, julgamentos, resultados de jogos, eventos
importantes, tudo em tempo real. Todas as aplicaes que
citamos anteriormente envolvem a interao entre o usurio
e um banco de dados. Outra categoria de utilizao de redes
de computadores a comunicao entre os usurios,
comandada principalmente pelo e-mail que j faz parte do
dia-a-dia das pessoas e utilizado por milhes de pessoas
em todo o mundo. A troca de mensagens instantneas como
MSN Messenger, ICQ, Google Messenger virou uma febre
entre os jovens, as salas de bate-papo so muito visitadas
por pessoas que desejam discutir assuntos em comum. Essa
interatividade entre os usurios, proporcionada pela grande
rede de computadores que faz da internet um sucesso. Por
fim, h o entretenimento que composto principalmente
pelos jogos em rede e jogos on-line. Os jogos em redes

esto perdendo espao para os on-line, principalmente pela


sua limitao de estrutura fsica, pois os jovens montam suas
redes caseiras formadas por dois ou mais computadores e
ficam restritos estrutura e ao espao fsico limitado. Com os
online, basta apenas estar conectado internet, em que
possvel acessar jogos de simulao em tempo real
formados por equipes de vrios participantes, onde o usurio
pode competir com jogadores de todas as partes do mundo.
As redes de computadores tornaram-se extremamente
importantes para as pessoas que se encontram em regies
distantes, pois propiciam a elas servios que so oferecidos
s pessoas das grandes cidades, e sem dvida a diversidade
do uso das redes de computadores crescer rapidamente no
futuro, e chegar onde ningum capaz de prever agora. As
redes de computadores de modo geral esto presentes em
nosso dia-a-dia, estamos to acostumados a utiliz-las que
no nos damos conta da sofisticao e complexidade da
estrutura, que mantm os dados e as informaes ao nosso
redor. A maneira com que as redes de computadores so
interligadas um ponto importante, pois dispositivos podem
ser interconectados de vrias formas envolvendo tanto o
ponto de vista fsico, como o lgico. A topologia fsica referese ao layout fsico e ao meio de conexo dos dispositivos de
redes, ou seja, como eles so conectados, e esses
dispositivos que formam a estrutura de uma rede so
chamados de ns ou nodos. A topologia lgica a forma com
que os ns se comunicam atravs dos meios de transmisso.
As redes so compostas por arranjos topolgicos
interligados, cuja principal finalidade, a economia de
recursos, pois com suas estruturas o compartilhamento e o
processamento individual so distribudos para todos, o que
torna as informaes ao alcance de todos os usurios que
esto conectados. Ponto a Ponto a topologia mais simples
e pode ser representada por dois computadores interligados
entre si, atravs de um meio detransmisso qualquer. A
topologia ponto a ponto a base para a formao de novas
topologias, com a incluso de outros ns em sua estrutura.
No barramento, todos os ns esto ligados ao mesmo meio
de transmisso, onde o tempo e a frequncia so
importantes para a transmisso dos dados. Todos os ns que
esto ligados barra, podem ouvir as informaes que
esto sendo transmitido, o que facilita o uso de aplicaes
que necessitam da difuso de mensagens para mltiplas
estaes. Para controlar o acesso das estaes ao
barramento, existem dois modos de controle, o centralizado
que um n especial na rede que determina ou no o direito
de um n acessar o barramento, e o descentralizado em que
o controle de acesso distribudo entre os ns. O
desempenho da topologia em barra determinado pelo
nmero de estaes conectadas, meios de transmisso
utilizados, trfego, entre outros fatores. A topologia em anel
formada por ns conectados atravs de um percurso

fechado, onde o sinal circula na rede passando por cada


estao. Essas estaes fazem o papel de repetidoras e
retransmitem o sinal at que o destinatrio seja encontrado.
capaz de transmitir e receber informaes em ambos os
sentidos, o que torna os protocolos de entrega de
mensagens
aos
destinatrios,
menos
sofisticados.
Infelizmente essa topologia pouco tolervel falha, sendo
complicada a implantao de deteco de erros, que podem
fazer com que uma mensagem circule eternamente no anel.
Para contornar esse tipo de problema, uma estao pode
iniciar o anel, monitorar o envio de pacotes e diagnosticar o
funcionamento da rede, essa estao monitora pode ser
dedicada ou ento cada estao assume a monitoria por um
determinado perodo de tempo. A topologia em estrela
formada por diversas estaes conectadas a um dispositivo
central e toda a comunicao supervisionada por esse n
central. A unidade central tem o poder de determinar a
velocidade de transmisso entre o transmissor e o receptor, e
converter sinais transmitidos por protocolos diferentes, o que
permite a comunicao entre redes de fabricantes distintos.
As falhas em estaes ou na ligao entre a estao e o n
central, deixam de fora apenas o n que est envolvido na
ligao, mas se a falha ocorrer no n central, todo o sistema
ficar fora do ar. Como soluo para esse tipo de problema,
teramos a replicao de estaes centrais, s que os custos
aumentariam bastante, o que limita a implantao dessa
topologia. O seu desempenho est totalmente ligado
unidade central, pois depende do tempo de que ela necessita
para o processamento e o encaminhamento de mensagens.
Apesar de todos os seus problemas, essa topologia permite
um melhor controle da rede e a maioria dos sistemas de
redes programa essa configurao. equivalente a vrias
redes estrelas interligada entre si, essa ligao feita
atravs dos seus ns centrais. utilizada principalmente na
ligao de Hub`s e repetidores, conhecida tambm como
cascateamento. Estrutura Mista ou Hbrida uma mistura de
topologias, que tem como caractersticas as ligaes ponto a
ponto e multiponto e com isso se obtm redes complexas
proporcionando um maior nmero de recursos. A estrutura
mista pode conter a topologia anel, estrela, barra etc. A
topologia em grafo engloba caractersticas de vrias
topologias, e cada n da rede possui uma rota alternativa
que pode ser usada em caso de falha ou congestionamento.
Essas rotas so traadas por ns, que tm a funo de
rotear endereos que no pertencem a sua rede.
Comparativos entre as topologias mais conhecidas:
Topologias
Vantagens
Desvantagens
Estrela
Monitoramento - Instalao simples - Custo de instalao Muito cabeamento Barramento - Estrutura simples - Pouco
cabeamento - Lentido causada pelo uso intenso Dificuldade no isolamento de problemas Anel - Instalao
simples - Desempenho uniforme Dificuldade em isolar

problemas - Se um n parar, todos param. Topologias lgicas


significam a forma com que os ns se comunicam atravs
dos meios fsicos. Os dois tipos mais comuns de topologias
lgicas so o Broadcast e a passagem de Token. Na
topologia de Broadcast o n envia seus dados a todos os ns
espalhados pela rede. No existe nenhum tipo de ordem
para este envio, o nico tipo de ordem : o primeiro a chegar
o primeiro a usar. A Ethernet funciona dessa forma Ethernet
a tecnologia mais utilizada em redes locais, ela pode ser
encontrada em topologias do tipo estrela que composta por
ligaes utilizando cabeamento par tranado e uma unidade
central e em topologias do tipo barramento com a utilizao
de cabo coaxial. Nesse tipo de rede, a estao que deseja
transmitir ouve o trfego na rede, se no ouvir nada, ela
transmite a informao. Se duas estaes transmitirem
informaes ao mesmo tempo, ocorrer uma coliso de
pacotes, cada estao ser alertada sobre a coliso e elas
esperaro um perodo aleatrio para transmitirem
novamente. Esse mtodo conhecido como CSMA/ CD
(Carrier Sense Multiple Access With Collision Detection). A
segunda topologia lgica a passagem de Token, onde um
sinal de Token controla o envio de dados pela rede. Um
exemplo de rede que utiliza a passagem de token a Token
Ring. O mtodo de acesso Token Ring utiliza a topologia em
anel para transmitir dados entre duas estaes. A estao
transmissora necessita obter um sinal (Token), que concede
estao o direito de transmisso e percorre a rede de n
em n. Apenas um Token est disponvel na rede, o que faz
com que uma nica estao acesse a rede por vez, evitandose colises de pacotes. Seu funcionamento feito da
seguinte forma: um. O sinal de Token circula no anel; dois. O
emissor espera a chegada do Token; trs. O emissor captura
o Token e transmite os dados; quatro. O receptor recebe os
dados e libera o Token. Os sinais eltricos so tenses que
variam ao longo do tempo, sendo que algumas delas so
teis, pois transmitem alguns tipos de dados, como os que
trafegam nas redes de computadores. Essas tenses podem
ser classificadas como sinais analgicos e digitais. A grande
maioria dos sinais eltricos utilizados na computao so
digitais, e os que so analgicos so digitalizados para que
depois sejam processados e armazenados. Os sinais digitais
assumem uma infinidade de valores, mas no so
matematicamente perfeitos, por isso eles no representam
apenas dois valores 0 e 1, como alguns textos ensinam.
Como exemplo, em uma transmisso de uma sequncia de
bits 0110111001 so usadas as tenses de + 12 volts e 12
volts para representar os bits 0 e 1, s que elas no
assumem valores exatos, acontecendo oscilaes e em vez
de + 12 volts , temos + 11,3 volts ou 12,20 volts. Alm dessas
oscilaes, o sinal pode sofrer rudos e interferncias,
problema que no prejudica a qualidade do sinal se o valor
no for muito acentuado. Em qualquer tipo de comunicao,

a transmisso e a recepo podem ou no existir


simultaneamente, sendo classificadas em SIMPLEX, HALFDUPLEX E FULL-DUPLEX. A comunicao s possvel em
uma nica direo. Exemplo: 1. A ligao entre um
computador e uma impressora. 2. Transmisso de sinais de
rdio e televiso. A comunicao possvel em ambas s
direes,
porm
no
simultaneamente.
Exemplo:
Comunicao entre rdios amadores. A comunicao
possvel em ambas s direes simultaneamente.
Conversao telefnica entre duas pessoas.
Os
equipamentos utilizados na computao transmitem e
recebem bits simultaneamente. A transmisso paralela tem
como caracterstica vrios bits caminhando juntos atravs de
fios independentes, sendo mais rpida, j que os bits so
transmitidos de forma simultnea. Sua desvantagem est no
custo, pois cara a transmisso de bits simultneos por
longas distncias, so exigidos cabos complexos que
incluem vrios condutores, o que o torna sensvel s
interferncias eletromagnticas. A transmisso serial consiste
no envio de bits, sendo que um por vez, pois com isso,
possvel atingir facilmente distncias maiores. Os cabos so
mais simples e baratos, o que facilita a sua construo com
blindagem eletromagntica e com isso a reduo das
interferncias que so captadas. Antigamente, um dos
problemas da transmisso serial era a lentido, s que hoje,
ela est extremamente rpida e no possui problemas de
sincronismo e interferncias, como os encontrados em
transmisses paralelas. A transmisso serial j to eficiente
que est substituindo os dispositivos que utilizam
transmisso paralela, a exemplo dos dispositivos USB e
FIREWIRE que so transmisses seriais de alta velocidade.
O termo assncrono refere-se irregularidade dos instantes
de ocorrncia da transmisso, ou seja, o tempo de
transmisso decorrido de dois bits pode ser variado pelo
equipamento de transmisso. Nesse tipo de transmisso, um
bit especial inserido no incio e no fim da transmisso de
um caractere e assim permite que o receptor entenda o que
foi realmente transmitido. A principal desvantagem desse tipo
de transmisso a m utilizao do canal, pois os caracteres
so transmitidos irregularmente, alm de um alto overhead
(os bits de controle que so adicionados no incio e no fim do
caractere), o que ocasiona uma baixa eficincia na
transmisso dos dados. Na transmisso sncrona, os bits de
um caractere so enviados imediatamente aps o anterior,
no existem os bits de controle no incio e no fim do
caractere e nem irregularidades nos instantes de
transmisso. A transmisso sncrona estabelecida atravs
de uma cadncia fixa para a transmisso dos bits de todo um
conjunto de caracteres, um bloco. Resumindo, o transmissor
e o receptor comunicam-se, sincronizam suas aes, e
preparam-se para receber a comunicao, j sabendo da
taxa de transmisso e o tamanho dos dados ordenados e

conhecidos. A comunicao sncrona mais cara que a


assncrona, pois necessita de um relgio no hardware para
permitir o seu sincronismo e muito utilizada em redes com
altas taxas de transmisso. Quatro MEIOS FSICOS DE
TRANSMISSO Os meios fsicos de transmisso so
compostos pelos cabos coaxiais, par tranado, fibra ptica,
transmisso rdio, transmisso via satlite e so divididos
em duas categorias: os meios guiados e os meios no
guiados. No meio guiado, o sinal percorre atravs de meios
slidos, como a fibra, o cabo coaxial e o par tranado. No
meio no guiado, o sinal propaga-se na atmosfera, como o
caso das redes sem fio e transmisses via rdio e via
satlite. Cabos par tranado O meio de transmisso guiado
mais utilizado pelas redes telefnicas o par tranado, que
est presente em quase 95% das ligaes entre os
aparelhos residenciais e as centrais telefnicas. Sua
constituio feita por dois fios de cobertos isolados e
enrolados em forma de espiral, com o intuito de reduzir as
interferncias dos pares semelhantes que esto prximos.
Rede de Computadores pares conjugada dentro de um
cabo, sendo que cada par isolado por uma blindagem de
proteo. O par de fios tranado UTP (Unshielded Twisted
Pair) bem utilizado em redes de computadores existentes
em edifcios comerciais. Sua taxa de transmisso est na
faixa de 10 Mbps a 1 Gbps, o que pode variar dependendo
da distncia entre o transmissor e o receptor. A tecnologia
UTP categoria 5 consegue o alcance de taxas de
transmisso de dados de 100 Mbps, na distncia de algumas
centenas de metros permitindo que o par tranado firme-se
como a tecnologia dominante em LANs de alta velocidade. O
par tranado no usado apenas comercialmente, em
muitas residncias ele utilizado para o acesso internet via
modem, com uma taxa de acesso de at 56 Kbps, e com a
utilizao da tecnologia DSL (Linha digital de assinante), que
permite o alcance de taxas de transmisses maiores que 6
Mbps com pares de fios tranados. Cabo coaxial Outro meio
de transmisso guiado o cabo coaxial. Ele possui melhor
blindagem se comparado com o cabo par tranado, podendo
se estender por distncias maiores e em velocidades mais
altas. Sua constituio formada por dois condutores de
cobre concntricos e no paralelos com um isolamento e
blindagem especial, o que permite, com essa configurao, o
alcance de altas taxas de transmisso de bits. Um fio de
cobre na parte central envolvido por um material isolante,
que protegido por uma malha slida entrelaado. O
condutor externo protegido por uma camada plstica
protetora. Existem dois tipos de cabos coaxiais comumente
usados. O primeiro o cabo de 50 ohms, que utilizado em
transmisses digitais, e o segundo o cabo de 75 ohms que
utilizado com frequncia em transmisses analgicas de
TV e internet a cabo. O cabo coaxial pode ser utilizado como
um meio compartilhado guiado, onde vrios sistemas finais

podem ser conectados diretamente ao cabo, e todos eles


recebem os sinais que so enviados por outros sistemas
finais. A fibra ptica um meio de transmisso guiado que
conduz pulsos de luz, cada pulso representado por um bit.
A fibra, alm de suportar altas taxas de transmisso de bits,
na casa das dezenas de gigabits por segundo, imune a
interferncias eletromagnticas, e possui uma baixa
atenuao de sinal. Todas essas caractersticas tornaram a
fibra o meio preferido para transmisses guiadas de longo
alcance. O cabo de fibra ptica semelhante ao cabo
coaxial, exceto por no ter a malha metlica. Rede de
Computadores O centro da fibra formado por um ncleo de
vidro por onde se propaga a luz. Esse ncleo revestido por
um vidro com ndice de refrao inferior ao do ncleo, para
manter toda a luz no ncleo. Fibras pticas versus fio de
cobre A fibra possui muitas vantagens, pois permite gerenciar
larguras de bandas muito mais altas que o cobre. Os
repetidores s so necessrios a cada 50 km de distncia,
bem diferente dos 5 km exigidos pelos fios de cobre. No
afetada
por
picos
de
voltagem,
interferncias
eletromagnticas ou queda no fornecimento de energia. As
empresas telefnicas preferem a utilizao do fiopor ela ser
fina e leve. Por exemplo, mil pares tranados com 1 km de
comprimento pesam nove toneladas, enquanto duas fibras
com a mesma capacidade de transmisso pesam apenas
100 kg. Na rea de segurana, as fibras dificilmente so
interceptadas, uma excelente alternativa contra possveis
escutas telefnicas. Mas a fibra no composta apenas de
vantagens. Como desvantagem em relao ao fio de cobre, a
fibra possui uma tecnologia pouco familiar, o que requer um
conhecimento especfico e mo-de-obra qualificada, alm de
danificar facilmente, se forem encurvadas demais. Os canais
de rdio carregam seus sinais dentro do espectro
eletromagntico, um meio de transmisso atraente, pois no
necessita de cabos fsicos. Os canais de rdio so fceis de
gerar, podem percorrer longas distncias e atravessar
paredes e obstculos. considerado omnidirecional o que
permite que viajem por todas as direes, e desse modo o
transmissor e o receptor no precisam estar fisicamente
alinhados. Os canais de rdio podem ser classificados em
dois grupos, os de pequeno alcance, que funcionam em
locais prximos abrangendo de dez a algumas centenas de
metros, e os de longo alcance, que abrangem algumas
centenas de quilmetros. Transmisses via satlite Um
satlite de comunicao permite a ligao de dois ou mais
transmissor-receptores, que so denominados de estaes
terrestres. Eles recebem as transmisses em uma faixa de
frequncia, geram novamente o sinal com o uso de
repetidores e transmitem o sinal em outra faixa de
frequncia. Existem dois tipos de satlite que so usados
para a comunicao: os satlites geoestacionrios e os
satlites de baixa altitude. Os satlites geoestacionrios

ficam permanentemente sobre o mesmo lugar da terra. Isso


s permitido, porque so colocados em rbita a 37mil
quilmetros acima da superfcie terrestre. Essa enorme
distncia pode causar atrasos de propagao. Mesmo assim,
essa transmisso alcana velocidades de centenas de Mbps,
e so frequentemente usados em redes telefnicas e
backbones da internet. Os satlites de baixa altitude so
posicionados
prximos
da
terra
e
no
ficam
permanentemente em um nico lugar. Eles giram ao redor da
terra e para promoverem a cobertura contnua em
determinadas reas necessrio colocar muitos satlites em
rbita.

Plano de Desenvolvimento da Aplicao

A linguagem de programao utilizada para desenvolver essa


aplicao foi a Java, que uma linguagem orientada a objeto
desenvolvida na dcada de 90 por uma equipe de
programadores chefiada por James Gosling. Diferente das
linguagens convencionais, que so compilados para o cdigo
nativo, a linguagem Java compilada para um bytecode que
executado por uma mquina virtual.
As tcnicas utilizadas no desenvolvimento desse trabalho
foram aperfeioadas com o passar do tempos, trazendo
melhorias significativas, se comparamos com o refinamento
de trabalhos anteriores
O objetivo do desenvolvimento dessa aplicao
proporcionar a comunicao em rede entre vrios usurios,
facilitando assim a troca de informaes entre eles.

Projeto estrutural do Sistema

Representao da Tela inicial do


programa assim que executado.

Representao do programa
assim que clicado no boto
CLIENTE.

Representao do programa
assim que clicado no boto
CLIENTE SERVIDO
.

Representao das Telas de Conversa


do programa
Representao do programa
quando alguma informao de
Usurio ou senha so digitados
incorretamente.

Representao dos usurios


interagindo

Relatrio com as linhas de cdigo do Sistema.


Class ChatCliente
package redes;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ChatCliente extends JFrame{
private static final long serialVersionUID = 1L;
JTextField textoParaEnviar;
PrintWriter escritor;
Socket socket;
String nome;
JTextArea textoRecebido;
Scanner leitor;
JButton botaoEnviar;
private class OuveServidor implements Runnable{
public void run() {
try{
String texto;
while((texto = leitor.nextLine()) != null){
textoRecebido.append(texto + "\n");// add no final do
texto este novo trecho
}
}catch(Exception x){}
}
}
public ChatCliente(String nome){
super("Chat " + nome);
this.nome = nome;
textoParaEnviar = new JTextField();
botaoEnviar = new JButton("Enviar");
botaoEnviar.addActionListener(new EnviarListener());

Container janelaDeEnvio = new JPanel();


janelaDeEnvio.setLayout(new BorderLayout());
janelaDeEnvio.add(BorderLayout.CENTER, textoParaEnviar);
janelaDeEnvio.add(BorderLayout.EAST, botaoEnviar);
Font fonte = new Font("Arial", Font.BOLD, 14);
textoRecebido = new JTextArea();
JScrollPane scroll = new JScrollPane(textoRecebido);
textoRecebido.setFont(fonte);
textoRecebido.setEditable(false);
getContentPane().add(BorderLayout.CENTER, scroll);
getContentPane().add(BorderLayout.SOUTH, janelaDeEnvio);
configurarRede();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(300, 500);
setLocation(0, 100);
setVisible(true);
}
private class EnviarListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == botaoEnviar)
{
escritor.println(nome + " : " + textoParaEnviar.getText());
escritor.flush();// garantir que a informao foi encaminhada
textoParaEnviar.setText("");
textoParaEnviar.requestFocus(); // adiciona o cursor no
campo de texto
}
}
}
private void configurarRede(){
try{
socket = new Socket("127.0.0.1", 5000);
escritor = new PrintWriter(socket.getOutputStream());
leitor = new Scanner(socket.getInputStream());
new Thread(new OuveServidor()).start();
}catch(Exception e){}
}
}

ChatServidor
package redes;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class ChatServidor {
List<PrintWriter> escritores = new ArrayList<PrintWriter>();
public ChatServidor(){
ServerSocket server;
try {
server = new ServerSocket(5000);
new TelaInicial2();
JOptionPane.showMessageDialog
(null,"Servidor Online.");
while(true){
//monitorar constantemente a situao
Socket socket = server.accept();
new Thread(new OuveCliente(socket)).start();
PrintWriter p = new PrintWriter(socket.getOutputStream());
escritores.add(p);
}
} catch (IOException e) {}
}
private void encaminharParaTodos(String texto){
for (PrintWriter w : escritores){
try{
w.println(texto);
w.flush();
}catch(Exception e){}
}
}
private class OuveCliente implements Runnable{
Scanner leitor;
public OuveCliente(Socket socket){
try{
leitor = new Scanner(socket.getInputStream()); // faz a leitura
das informaes
}catch(Exception e){}

}
public void run() {
String texto;
try{
while((texto = leitor.nextLine()) != null){
System.out.println(texto);
encaminharParaTodos(texto);
}
}catch(Exception e){}
}
}
public static void main(String[] args) {
new ChatServidor();
}
}

ServidorTop
package redes;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ServidorTop extends JFrame{
private static final long serialVersionUID = 1L;
JTextField textoParaEnviar;
PrintWriter escritor;
Socket socket;
String nome;
JTextArea textoRecebido;
Scanner leitor;
JButton botaoEnviar;
private class OuveServidor implements Runnable{
public void run() {
try{
String texto;
while((texto = leitor.nextLine()) != null){
textoRecebido.append(texto + "\n");// add no final do
texto este novo trecho
}
}catch(Exception x){}
}
}
public ServidorTop(String nome){
super("Usurio Servidor");
this.nome = nome;
textoParaEnviar = new JTextField();
botaoEnviar = new JButton("Enviar");
botaoEnviar.addActionListener(new EnviarListener());
Container janelaDeEnvio = new JPanel();

janelaDeEnvio.setLayout(new BorderLayout());
janelaDeEnvio.add(BorderLayout.CENTER, textoParaEnviar);
janelaDeEnvio.add(BorderLayout.EAST, botaoEnviar);
Font fonte = new Font("Arial", Font.BOLD, 14);
textoRecebido = new JTextArea();
JScrollPane scroll = new JScrollPane(textoRecebido);
textoRecebido.setFont(fonte);
textoRecebido.setEditable(false);
getContentPane().add(BorderLayout.CENTER, scroll);
getContentPane().add(BorderLayout.SOUTH, janelaDeEnvio);
configurarRede();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(300, 500);
setLocation(310, 100);
setVisible(true);
}
private class EnviarListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == botaoEnviar)
{
escritor.println(nome + " : " + textoParaEnviar.getText());
escritor.flush();// garantir que a informao seja encaminhada
textoParaEnviar.setText("");
textoParaEnviar.requestFocus(); // adiciona o cursor no
campo de texto
}
}
}
private void configurarRede(){
try{
socket = new Socket("127.0.0.1", 5000);
escritor = new PrintWriter(socket.getOutputStream());
leitor = new Scanner(socket.getInputStream());
new Thread(new OuveServidor()).start();
}catch(Exception e){}
}
}

Tela Inicial
package redes;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TelaInicial2 extends JFrame implements ActionListener {
ImageIcon
fundo
ImageIcon(getClass().getResource("/Imagens/inicial.jpg"));
JPanel panel1;
JButton cliente, servidor;
Container janela2;
TelaLogin login;

public TelaInicial2(){
super("Eco ChatMessenger");
cliente = new JButton("Cliente");
servidor = new JButton("Usurio Servidor");
panel1 = new JPanel();
Font fonte = new Font("Verdana", Font.ITALIC, 14);
cliente.setFont(fonte);
servidor.setFont(fonte);
cliente.addActionListener(this);
servidor.addActionListener(this);
janela2 = getContentPane();
janela2.setLayout(new BorderLayout());
panel1.setLayout(null);
panel1.add(cliente);
panel1.add(servidor);

new

cliente.setBounds(79, 167, 153, 20);


servidor.setBounds(243, 167, 154, 20);
janela2.add(panel1, BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
setLocationRelativeTo(null);
setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(fundo.getImage(),0,0,this);}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == cliente){
String nome = JOptionPane.showInputDialog("Digite seu nome");
new ChatCliente(nome);
}
if(e.getSource() == servidor){
new TelaLogin();
}
}
}

TelaLogin
package redes;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class TelaLogin extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JLabel jlNome, jlSenha, jlInfo;
private JButton btOk, btCancelar;
private JTextField tfNome;
private JPasswordField passwdField;
private JPanel jpCenter, jpCenterFull, jpHead, jpLogin, jpButtons, jpFull;
Container janela;
int i=0;
public TelaLogin(){
super("Tela de Login");
jlNome = new JLabel("Usurio");
jlSenha = new JLabel("Senha");
jlInfo = new JLabel("Informe o Nome de Usurio e Senha");
tfNome = new JTextField(10);
btOk = new JButton("Entrar");
btCancelar = new JButton("Cancelar");
passwdField = new JPasswordField("");
jpCenter = new JPanel();
jpCenterFull = new JPanel();
jpHead = new JPanel();
jpLogin = new JPanel();
jpButtons = new JPanel();
jpFull = new JPanel();

btOk.addActionListener((ActionListener) this);
btCancelar.addActionListener((ActionListener) this);
janela = getContentPane();
janela.setLayout(new BorderLayout());
jpLogin.setLayout(new GridLayout(2,1));
jpButtons.setLayout(new GridLayout(1,2));
jpHead.setLayout(new FlowLayout());
jpCenter.setLayout(new BorderLayout());
jpCenterFull.setLayout(new BorderLayout());
jpFull.setLayout(new FlowLayout());
jpFull.setSize(100,100);
jpHead.add(jlInfo);
jpLogin.add(jlNome);
jpLogin.add(tfNome);
jpLogin.add(jlSenha);
jpLogin.add(passwdField);
jpButtons.add(btOk);
jpButtons.add(btCancelar);
jpCenter.add(jpLogin, BorderLayout.CENTER);
jpCenter.add(jpButtons, BorderLayout.SOUTH);
jpCenterFull.add(jpHead, BorderLayout.NORTH);
jpCenterFull.add(jpCenter, BorderLayout.CENTER);
jpFull.add(jpCenterFull);
janela.add(jpFull, BorderLayout.CENTER);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(270, 150);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String login = "eco";
String senha = "eco";
if(e.getSource() == btOk){
String login1 = tfNome.getText();
String senha1 = passwdField.getText();
if(senha1.equals(senha) && login1.equals(login)){
JOptionPane.showMessageDialog
(null,"Usurio ou senha incorretos.");
setVisible(false);

new ServidorTop("Usurio Servidor");


}
else{
i++;
JOptionPane.showMessageDialog
(null,"Dados incorretos");}
}
if(i == 3){dispose();}
if(e.getSource() == btCancelar){dispose();}
}
}

Referencia Bibliogrfica
http://www.caelum.com.br/apostila-java-orientacao-objetos/eclipse-ide/
http://www.caelum.com.br/apostila-java-orientacao-objetos/apendice-sockets/
http://javafree.uol.com.br/artigo/2879/Programando-com-sockets-em-java-parte01.html
http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
http://www.guj.com.br/articles/38
http://www.guj.com.br/java/61756-melhor-maneira-de-desenvolver-aplicacoesswing-no-eclipse
http://javafree.uol.com.br/topic-886551-Alinhar-botoes-e-setar-a-Size.html
http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_em_rede
http://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_comunica
%C3%A7%C3%A3o_entre_computadores_e_tecnologias_de_rede/Tecnologias_de
_rede
Java - Como Programar - 8 Ed. 2010 - DEITEL
Use a cabea: Java - ED. Alfa Books

FICHA DE ATIVIDADES PRTICAS SUPERVISIONADAS


Atividades Prticas Supervisionadas (laboratrios, atividades em biblioteca,
Iniciao Cientfica, trabalhos Individuais e em grupo, prticas de ensino e outras)
NOME: Gregory Cardoso, Jonathan Rodrigues e Leandro Santana
RAs:A66CJC-6,B3863A1 e B206756 CURSO: Cincia da Computao
CAMPUS: UNIP-SWIFT SEMESTRE: 5Semestre
Assinatura
Data
Atividade
Total
de
Horas
02/05
Pesquisa referente ao tema da
4 hrs.
APS
05/05
Pesquisa referente ao tema da
4 hrs.
APS
07/05
Debate sobre a estrutura do
2 hrs.
sistema
10/05
Desenvolvimento da classe
4 hrs.
ChatCliente
13/05
Desenvolvimento da classe
4 hrs.
ChatServidor
15/05
Desenvolvimento da classe
5 hrs.
ServidorTop
17/05
Desenvlvimento da classe
5h
TelaInicial2
18/05
Desenvolvimento da classe
4h
Login
20/05
Organizao das informaes
3 hrs.
24/05
Desenvolvimento da parte
5 hrs.
escrita
26/05
Desenvolvimento da parte
4 hrs.
escrita
28/05
Finalizao do APS
3 hrs.
30/05
Finalizao da ASP
3 hrs.

TURNO:Noturno
Aluno

Professor

TOTAL DE HORAS: 50 horas.