UNIP – Universidade Paulista
Ciência da Computação
DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMUNICAÇÃO EM REDE
MATEUS VERONA B5935H9
2
Sumário Objetivo e motivação do trabalho.............................................................................................. trabalho........................................................................................................... ............. 3 Introdução ............................................................................................................................................... ............................................................................................................................................... 4 Fundamentos da comunicação de dados em rede ................................................................................. ................................................................................. 5 Conceito de redes........................................................ .............................................................................................................................. ........................................................................ .. 5 Histórico ........................................................... ................................................................................................................................. ................................................................................... ............. 5 Usos ..................................................................................................................................................... ..................................................................................................................................................... 6 Redes de computadores em aplicações comerciais ........................................................... ........................................................................ ............. 6 Redes de computadores em aplicações domésticas ...................................................................... ........................................................................ 7 Classificação das redes ........................................................................................................................ ........................................................................................................................ 8 LAN ............................................................... ..................................................................................................................................... ................................................................................... ............. 8 MAN .............................................................................................................. ................................................................................................................................................. ................................... 9 WAN ............................................................. ................................................................................................................................... ................................................................................... ............. 9 Meios físicos f ísicos de transmissão tr ansmissão.............................................................. ............................................................................................................... ................................................. 9 Cabo par trançado ........................................................................................................................... ........................................................................................................................... 9 Cabo coaxial............................................................. ................................................................................................................................... ...................................................................... 10 Cabo fibra óptica ........................................................................................................................... ........................................................................................................................... 10 Transmissão via vi a rádio ..................................................................... .................................................................................................................... ............................................... 10 Transmissão via satélite ................................................................................................................ ................................................................................................................ 10 Plano de desenvolvimento da aplicação ............................................................................................... ............................................................................................... 12 Projeto (estrutura e módulos que serão desenvolvidos) do programa ................................................ ................................................ 13 Relatório com as linhas de código do programa .......................................................... ................................................................................... ......................... 14 Chat ................................................................... ........................................................................................................................................ ................................................................................ ........... 14 Cliente .............................................................. .................................................................................................................................... ................................................................................. ........... 21 21 Servidor ............................................................ .................................................................................................................................. ................................................................................. ........... 22 Mensagem .............................................................................................................................. ......................................................................................................................................... ........... 23 Bibliografia............................................................................................................................................. Bibliografia........................................................................ ..................................................................... 2 5
3
Objetivo e motivação do trabalho O presente trabalho tem por objetivo demonstrar como funciona a comunicação em rede entre dois ou mais computadores, com o desenvolvimento de uma ferramenta em linguagem de programação Java, fazendo uso também do protocolo TCP/IP. Para isso foi utilizado o programa IDE NetBeans para desenvolver a aplicação bem como foi realizada pesquisa teórica a fim de aprofundar os conhecimentos acerca da melhor linguagem para o desenvolvimento de tal programa e as suas utilidades e aplicações no cotidiano.
4
Introdução O presente trabalho intitulado desenvolvimento de uma ferramenta para comunicação em rede, tem por objetivo demonstrar as utilidades práticas de um aplicativo para comunicação em rede entre computadores, desenvolvido em linguagem de programação Java através do protocolo TCP/IP. Assim, foi realizada pesquisa teórica para embasar o desenvolvimento da aplicação. O resultado final será apresentado em sala.
5
Fundamentos da comunicação de dados em rede Conceito de redes Rede de computadores é um conjunto de equipamentos interligados de maneira a trocarem informações e compartilharem recursos, como arquivos de dados gravados, impressoras, modems, softwares e outros equipamentos.
Histórico As redes passaram por um longo processo de evolução antes de chegarem aos padrões utilizados atualmente. As primeiras redes de computadores foram criadas ainda durante a década de 60, como uma forma de transferir informações de um computador a outro. De 1969 a 1972, foi criada a ARPANET, o embrião da Internet que conhecemos hoje. A rede entrou no ar em dezembro de 1969, inicialmente, com apenas quatro nós, que respondiam pelos nomes SRI, UCLA, UCSB e UTAH e eram sediados, respectivamente, no Stanford Research Institute, na Universidade da Califórnia, na Universidade de Santa Barbara e na Universidade de Utah, todas elas nos EUA. Eles eram interligados através de links de 50 kb/s, criados usando linhas telefônicas dedicadas, adaptadas para o uso como link de dados. Em 1974, surgiu o TCP/IP, que se tornou o protocolo definitivo para uso na ARPANET e, mais tarde, na internet. Uma rede interligando diversas universidades permitiu o livre tráfego de informações, levando ao desenvolvimento de recursos que usamos até hoje, como o e-mail, o telnet e o FTP, que permitiam aos usuários conectados trocar informações, acessar outros computadores remotamente e compartilhar arquivos. Na época, mainframes com um bom poder de processamento eram raros e incrivelmente caros, de forma que eles acabavam sendo compartilhados entre diversos pesquisadores e técnicos, que podiam estar situados em qualquer ponto da rede. Apesar da indústria de informática ser jovem em comparação a outros setores (automobilístico e aéreo), foi simplesmente espetacular o progresso que os computadores experimentaram em curto período. Durante as primeiras décadas de sua existência, os sistemas eram altamente centralizados em geral instalados em uma grande sala, muitas vezes com acesso restrito.
6
A fusão dos computadores e comunicações teve uma profunda influência na forma como os sistemas computacionais são organizados. O conceito então dominante de “centro de computação” como uma sala com um grande computador aos quais os usuários levam seu trabalho para processamento agora está totalmente obsoleto. Este conceito foi alterado para em vez de um computador processando tudo centralizadamente para que trabalhos são realizados por um grande n° de computadores separados, porém interconectados. Esses sistemas são chamados de redes de computadores. Redes de computadores envolvem equipamentos, protocolos, modelos de referência para uso em hardwares de rede, já os sistemas distribuídos são responsáveis pela implementação de um modelo coerente em software, em outras palavras, é um sistema de software instalado na parte superior de uma rede dando alto grau de coesão e transparência. Exemplo: World Wide Web sob ETHERNET. Em um sistema distribuído a existência de vários computadores autônomos é transparente para o usuário ele entra com um comando e é o SO que decide qual processador ou PC executará, enquanto que em redes o usuário que decide em qual PC far á o acesso para execução.
Usos Redes de computadores em aplicações comerciais
Atualmente, as empresas possuem um grande número de computadores para desempenhar os mais diversos tipos de aplicações, como monitoramento, controle de produção e estoque, geração de planilhas e relatórios etc. Inicialmente, cada processo era feito de modo isolado, não existia nenhuma forma de correlacionamento de informações e compartilhamento de recursos. Foi observado então, que com a interligação desses computadores espalhados pelas empresas, era possível comunicar os mais diversos sistemas, além de compartilhar recursos como impressores e drivers de CD-ROM, o que permite que todos os usuários da rede utilizem esses recursos. Na maioria dos casos em que as empresas implantam em sua estrutura uma rede de computadores, elas sempre obtêm economia com o compartilhamento de recursos. Como exemplo, imagine a situação em que existem várias impressoras individuais, sendo estas substituídas por uma única impressora de grande porte, com
7
essa troca, a manutenção é facilitada, permite o acesso de um número maior de usuários, além de possibilitar o controle do número de impressões. Tão importante quanto o compartilhamento de recursos é o compartilhamento de informações. As grandes instituições possuem filiais espalhadas por regiões diferentes e precisam acessar informações que são comuns a todas, como registro de clientes, estoque de produtos, pedidos, etc. O fato de os usuários estarem em países diferentes, não impede que eles acessem esses dados como se eles estivessem armazenados em seu computador local. Para permitir esta facilidade de acesso, são utilizados servidores de grande porte para o armazenamento de informações e os usuários, com suas estações de trabalho, acessam esses dados remotamente. Essa comunicação entre computadores clientes e servidores é feita através das redes de computadores. Temos como exemplo de um modelo cliente/servidor, o acesso a uma página na internet, onde o usuário é o cliente que solicita através do seu navegador Web, um site qualquer e o servidor remoto encarrega-se de responder à solicitação do cliente. Observe que nesse modelo existem dois processos envolvidos, formado pelo computador cliente e o computador servidor. Além do compartilhamento de recursos e informações, as redes de computadores podem oferecer um eficiente meio de comunicação entre seus usuários. Muitas empresas utilizam o correio eletrônico (e-mail) para troca de informações, evitando o deslocamento e gasto com ligações. Percebemos então, o enorme ganho que o meio corporativo obteve com a implantação das redes de computadores. Seus dados e dispositivos agora podem ser compartilhados e acessados por filiais em qualquer parte do mundo, além de promover uma melhor comunicação entre seus usuários. Redes de computadores em aplicações domésticas
No início, 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 usuário doméstico acessar informações remotas, comunicação entre usuários, jogos online e o correio eletrônico. Com a internet, os usuários podem obter informações dos mais variados gêneros como esporte, arte, ciência, automóveis, história, dentre muitos outros. Os portais de
8
informação atualizam seus artigos minuto a minuto, proporcionando aos seus usuários informações recentes. Além de ler as notícias, 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 aplicações que citamos anteriormente envolvem a interação entre o usuário e um banco de dados. Outra categoria de utilização de redes de computadores é a comunicação entre os usuários, comandada principalmente pelo e-mail que já faz parte do dia-a-dia das pessoas e é utilizado por milhões de pessoas em todo o mundo. A troca de mensagens instantâneas como MSN Messenger, ICQ, Google Messenger virou uma febre entre os jovens, as salas de bate-papo são muito visitadas por pessoas que desejam discutir assuntos em comum. Essa interatividade entre os usuários, 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 estão perdendo espaço para os on-line, principalmente pela sua limitação de estrutura física, pois os jovens montam suas “redes caseiras” formadas por dois ou mais computadores e ficam restritos à estrutura
e ao espaço físico limitado. Com os online, basta apenas estar conectado à internet, em que é possível acessar jogos de simulação em tempo real formados por equipes de vários participantes, onde o usuário 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 regiões distantes, pois propiciam a elas serviços que são oferecidos às pessoas das grandes cidades, e sem dúvida a diversidade do uso das redes de computadores crescerá rapidamente no f uturo, e chegará onde ninguém é capaz de prever agora.
Classificação das redes LAN
LAN é a tecnologia que apresenta uma boa resposta para interligação de dispositivos com distâncias relativamente pequenas e com uma largura de banda considerável; é uma facilidade de comunicação que provê uma conexão de alta
9
velocidade entre processadores, periféricos, terminais e dispositivos de comunicação de uma forma geral em um único prédio ou campus. MAN
As redes metropolitanas podem ser entendidas como aquelas que proveem a interligação das redes locais em uma área metropolitana de uma determinada região. WAN
Quando as distâncias envolvidas na interligação dos computadores são superiores a uma região metropolitana, podendo ser a dispersão geográfica tão grande quanto a distância entre continentes, a abordagem correta é a rede geograficamente distribuída (WAN).
Meios físicos de transmissão Os meios físicos de transmissão são compostos pelos cabos coaxiais, par trançado, fibra óptica, transmissão a rádio, transmissão via satélite e são divididos em duas categorias: os meios guiados e os meios não guiados. No meio guiado, o sinal percorre através de meios sólidos, como a fibra, o cabo coaxial e o par trançado. No meio não guiado, o sinal propaga-se na atmosfera, como é o caso das redes sem fio e transmissões via rádio e via satélite. Cabo par trançado
O meio de transmissão guiado mais utilizado pelas redes telefônicas é o par trançado, que está presente em quase 95% das ligações entre os aparelhos residenciais e as centrais telefônicas. Sua constituição é feita por dois fios de cobre isolados e enrolados em forma de espiral, com o intuito de reduzir as interferências dos pares semelhantes que estão próximos. Os pares são conjugados dentro de um cabo, sendo que cada par é isolado por uma blindagem de proteção. O par de fio trançado UTP (Unshielded Twisted Pair) é bem utilizado em redes de computadores existentes em edifícios comerciais. Sua taxa de transmissão está na faixa de 10 Mbps a 1 Gbps, o que pode variar dependendo da distância entre o transmissor e o receptor. A tecnologia UTP categoria 5 consegue o alcance de taxas de transmissão de dados de 100 Mbps, na distância de algumas centenas de metros permitindo que o par trançado firme-se como a tecnologia dominante em LANs de alta velocidade.
10
Cabo coaxial
Outro meio de transmissão guiado é o cabo coaxial. Ele possui melhor blindagem se comparado com o cabo par trançado, podendo se estender por distâncias maiores e em velocidades mais altas. Sua constituição é formada por dois condutores de cobre concêntricos e não paralelos com um isolamento e blindagem especial, o que permite, com essa configuração, o alcance de altas taxas de transmissão de bits. Um fio de cobre na parte central é envolvido por um material isolante, que é protegido por uma malha sólida entrelaçada. O condutor externo é protegido por uma camada plástica protetora. Existem dois tipos de cabos coaxiais comumente usados. O primeiro é o cabo de 50 ohms, que é utilizado em transmissões digitais, e o segundo é o cabo de 75 ohms que é utilizado com frequência em transmissões analógicas de TV e internet a cabo. O cabo coaxial pode ser utilizado como um meio compartilhado guiado, onde vários sistemas finais podem ser conectados diretamente ao cabo, e todos eles recebem os sinais que são enviados por outros sistemas f inais. Cabo fibra óptica
A fibra óptica é um meio de transmissão guiado que conduz pulsos de luz, cada pulso é representado por um bit. A fibra, além de suportar altas taxas de transmissão de bits, na casa das dezenas de gigabits por segundo, é imune a interferências eletromagnéticas, e possui uma baixa atenuação de sinal. Todas essas características tornaram a fibra o meio preferido para transmissões guiadas de longo alcance. O cabo de fibra óptica é semelhante ao cabo coaxial, exceto por não ter a malha metálica. Transmissão via rádio
Os canais de rádio carregam seus sinais dentro do espectro eletromagnético, um meio de transmissão atraente, pois não necessita de cabos físicos. Os canais de rádio são fáceis de gerar, podem percorrer longas distâncias e atravessar paredes e obstáculos. São considerados omnidirecionais, o que permite que viajem por todas as direções, e desse modo o transmissor e o receptor não precisam estar fisicamente alinhados. Transmissão via satélite
Um satélite de comunicação permite a ligação de dois ou mais transmissoresreceptores, que são denominados de estações terrestres. Eles recebem as
11
transmissões em uma faixa de frequência, geram novamente o sinal com o uso de repetidores e transmitem o sinal em uma outra faixa de f requência. Existem dois tipos de satélite que são usados para a comunicação: os satélites geoestacionários e os satélites de baixa altitude. Os satélites geoestacionários ficam permanentemente sobre o mesmo lugar da terra. Isso só é permitido, porque são colocados em órbita a 37mil quilômetros acima da superfície terrestre. Essa enorme distância pode causar atrasos de propagação. Mesmo assim, essa transmissão alcança velocidades de centenas de Mbps, e são frequentemente usados em redes telefônicas e backbones da internet. Os satélites de baixa altitude são posicionados próximos da terra e não ficam permanentemente em um único lugar. Eles giram ao redor da terra e para promoverem a cobertura contínua em determinadas áreas é necessário colocar muitos satélites em órbita.
12
Plano de desenvolvimento da aplicação A aplicação foi desenvolvida com o objetivo de interligar os conhecimentos e habilidades desenvolvidos durante o decorrer do semestre atual, bem como dos semestres anteriores, a fim de dar utilidade prática aos conhecimentos teóricos adquiridos em sala de aula. A aplicação, por tanto, foi desenvolvida utilizando a linguagem de programação Java, através do programa IDE NetBeans, já utilizados em semestres anteriores. Assim, foi desenvolvido um aplicativo que, utilizando-se do protocolo TCP/IP permite a comunicação em rede entre computadores. Essa aplicação permite a troca de mensagens entre computadores, tendo como grandes exemplos o MSN Messenger e o ICQ.
13
Projeto (estrutura e módulos que serão desenvolvidos) do programa
14
Relatório com as linhas de código do programa Chat package cliente;
import java.awt.event.*; import java.io.*; import java.net.*;
import static javax.swing.JOptionPane.*;
public class Chat extends javax.swing.JFrame {
private String nome; private Socket s; private BufferedReader br; private InputStreamReader isr;
//Método Construtor. public Chat(String nome) { initComponents(); this.nome = nome; try { s = new Socket("localhost", 5000); } catch (IOException e) { showMessageDialog(null, "Não conectou ao servidor."); System.exit(0); } Thread(); }
private void Thread() {
15
Thread t = new Thread(new Runnable() { String mensagem;
@Override public void run() {
try { isr = new InputStreamReader(s.getInputStream()); br = new BufferedReader(isr); while ((mensagem = br.readLine()) != null) { mensagemRecebida.setText(mensagemRecebida.getText() + mensagem + "\n"); } } catch (IOException e) { showMessageDialog(null, "Erro na conexão com o servidor", "", ERROR _MESSAGE); } } }); t.start(); }
@SuppressWarnings("unchecked") //
private void initComponents() {
jScrollPane3 = new javax.swing.JScrollPane(); mensagemRecebida = new javax.swing.JTextArea(); jScrollPane4 = new javax.swing.JScrollPane(); mensagemEnviada = new javax.swing.JTextArea(); btnEnviar = new javax.swing.JButton(); btnsair = new javax.swing.JButton();
16
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); setTitle("Chat - APS"); setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); setIconImage(getIconImage());
mensagemRecebida.setEditable(false); mensagemRecebida.setColumns(20); mensagemRecebida.setRows(5); jScrollPane3.setViewportView(mensagemRecebida);
mensagemEnviada.setColumns(20); mensagemEnviada.setRows(5); jScrollPane4.setViewportView(mensagemEnviada);
btnEnviar.setText("Enviar"); btnEnviar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnEnviarActionPerformed(evt); } }); btnEnviar.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { btnEnviarKeyPressed(evt); } });
btnsair.setText("Sair"); btnsair.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnsairActionPerformed(evt); }
17
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 332, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btnsair, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnEnviar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addComponent(jScrollPane3)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup()
18
.addComponent(btnEnviar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnsair, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) );
pack(); setLocationRelativeTo(null); }//
private void btnEnviarActionPerformed(java.awt.event.ActionEvent evt) { String mensagem = nome + " Disse: "; try { PrintStream ps = new PrintStream(s.getOutputStream()); mensagem += mensagemEnviada.getText(); //Recebe mensagem e envia ps.println(mensagem); //Limpar memória ps.flush(); mensagemEnviada.setText(""); } catch (IOException e) { showMessageDialog(null, "Não conseguiu enviar a mensagem", "", ERROR_MESSAGE); }
}
private void btnsairActionPerformed(java.awt.event.ActionEvent evt) { try { s.close();
19
System.exit(0); } catch (IOException e) { e.printStackTrace(); } }
private void btnEnviarKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ENTER) { String mensagem = nome + " Disse: "; try { PrintStream ps = new PrintStream(s.getOutputStream()); mensagem += mensagemEnviada.getText(); //Recebe mensagem e envia ps.println(mensagem); //Limpar memória ps.flush(); mensagemEnviada.setText(""); } catch (IOException e) { showMessageDialog(null, "Não conseguiu enviar a mensagem", "", ERROR_MESSAGE); } } }
// Variables declaration - do not modify private javax.swing.JButton btnEnviar; private javax.swing.JButton btnsair; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JTextArea mensagemEnviada; private javax.swing.JTextArea mensagemRecebida; // End of variables declaration
20
}
21
Cliente package cliente;
import static javax.swing.JOptionPane.*;
public class Cliente {
public static void main(String[] args) { String nome = showInputDialog(null, "Digite seu nome: "); Chat chat = new Chat(nome); chat.setVisible(true); } }
22
Servidor package servidor;
import java.io.*; import java.net.*; import java.util.*;
public class Servidor {
public static void main(String[] args) {
ArrayList
clientes = new ArrayList<>();
try { ServerSocket server = new ServerSocket(5000); Socket socket;
while (true) { socket = server.accept(); //Guarda o endereço do cliente clientes.add(new PrintStream(socket.getOutputStream())); Mensagem mensagem = new Mensagem(socket, clientes);
} } catch (IOException e) { e.printStackTrace(); } } }
23
Mensagem package servidor;
import java.io.*; import java.net.*; import java.util.*;
public class Mensagem {
private Socket s; private ArrayList clientes;
//Set public void setClientes(ArrayList clientes) { this.clientes = clientes; }
public Mensagem(Socket s, ArrayList clientes) { this.s = s; this.clientes = clientes; Thread(); }
private void Thread() {
Thread t = new Thread(new Runnable() { @Override public void run() { String mensagem = ""; try { InputStreamReader isr = new InputStreamReader(s.getInputStream());
24
BufferedReader br = new BufferedReader(isr); while ((mensagem = br.readLine()) != null) { enviarMensagem(mensagem); } } catch (IOException e) { e.printStackTrace(); } } }); t.start(); }
private void enviarMensagem(String mensagem) { for (int a = 0; a < clientes.size(); a++) { clientes.get(a).println(mensagem); clientes.get(a).flush(); } } }
25
Bibliografia FUNDAMENTOS
DE
REDES
DE
DADOS
E
COMUNICAÇÃO.
Acesso em 11 de maio de 2015.
ALENCAR, Márcio Aurélio dos Santos. FUNDAMENTOS DE REDES DE COMPUTADORES. < http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_man_sup/081112_funf_rede s_comp.pdf > Acesso em 07 de maio de 2015.
CARVALHO, Diego Fiori de. FUNDAMENTOS E INFRA-ESTRUTURA EM REDES DE COMPUTADORES. Acesso em 09 de maio de 2015.
FUNDAMENTOS
DE
REDES
DE
DADOS
E
COMUNICAÇÃO
–
EAD.
< http://unipvirtual.com.br/material/RECUPERACAO/EAD/FUNDAMENTOS_REDES_DADOS_COMCOM UNICA/PDF/geral_pdf.pdf > Acesso em 13 de maio de 2015.