A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.

Apresentações semelhantes


Apresentação em tema: "Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho."— Transcrição da apresentação:

1 Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho

2 2 Objetivo Apresentar uma implementação cliente- servidor Socket UDP Socket TCP Realizar captura de pacotes das implementações apresentadas

3 3 Interface Socket Clientes e servidores UDP Modelo de implementação socketbindsendtocloserecvfrom socketrecvfromclosesendto Comunicação Cliente UDP Servidor UDP

4 4 Implementação :: Servidor UDP import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception { // cria socket do servidor com a porta 9876 DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { // declara o pacote a ser recebido DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); // recebe o pacote do cliente serverSocket.receive(receivePacket); // pega os dados, o endereço IP e a porta do cliente para poder mandar a msg de volta String sentence = new String( receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); // transforma em maiúsculas String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); // monta o pacote com enderço IP e porta DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); // envia ao cliente serverSocket.send(sendPacket); }

5 5 Implementação :: Cliente UDP import java.io.*; // classes para input e output streams e import java.net.*;// DatagramaSocket,InetAddress,DatagramaPacket class UDPClient { public static void main(String args[]) throws Exception { // cria o stream do teclado BufferedReader inFromUser = new BufferedReader(new InputStreamReader (System.in)); DatagramSocket clientSocket = new DatagramSocket(); // declara socket cliente // obtem endereço IP do servidor com o DNS InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); // lê uma linha do teclado sendData = sentence.getBytes(); // cria pacote com o dado, o endereço do server e porta do servidor DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); //envia o pacote // declara o pacote a ser recebido DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); // recebe pacote do servidor // separa somente o dado recebido String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); // mostra no vídeo clientSocket.close(); // fecha o cliente }

6 6 Interface Socket Clientes e servidores TCP Modelo de implementação socketbindreadcloseListen Comunicação Servidor TCP acceptwrite socketwritecloseconnect Cleinte TCP read Sincronização

7 7 Projeto de servidores Tratamento de requisições Servidor Iterativo Adequado para serviços com reduzida taxa de requisição Requisições com baixa carga de processamento socketbindListen Servidor TCP acceptwritereadclose Socket original Novo socket

8 8 Implementação :: Servidor import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; // cria socket de comunicação com os clientes na porta 6789 (bind) ServerSocket welcomeSocket = new ServerSocket(6789); // espera msg de algum cliente e trata while(true) { // espera conexão de algum cliente Socket connectionSocket = welcomeSocket.accept(); // cria streams de entrada e saida com o cliente que chegou BufferedReader inFromClient = new BufferedReader(new InputStreamReader( connectionSocket.getInputStream())); DataOutputStream outToClient = new DataOutputStream( connectionSocket.getOutputStream()); // lê uma linha do cliente clientSentence = inFromClient.readLine(); // transforma a linha em maiúsculas capitalizedSentence = clientSentence.toUpperCase() + '\n'; // envia a linha maiúscula para o cliente outToClient.writeBytes(capitalizedSentence); }

9 9 Implementação :: Cliente import java.io.*; // classes para input e output streams import java.net.*; // classes para socket, serversocket e clientsocket class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; // cria o stream do teclado BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in)); // cria o socket de acesso ao server hostname na porta 6789 Socket clientSocket = new Socket("hostname", 6789); // cria os streams (encadeamentos) de entrada e saida com o servidor DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader inFromServer = new BufferedReader(new inputStreamReader( clientSocket.getInputStream())); // le uma linha do teclado e coloca em sentence sentence = inFromUser.readLine(); // envia a linha para o server outToServer.writeBytes(sentence + '\n'); // lê uma linha do server modifiedSentence = inFromServer.readLine(); // apresenta a linha do server no vídeo System.out.println("FROM SERVER " + modifiedSentence); // fecha o cliente clientSocket.close(); }

10 10 Atividade Compile e execute Cliente e Servidor UDP Cliente e Servidor TCP Analise com o WireShark Clientes e servidores UDP/TCP Realize teste de bind em portas reservadas com processos de usuário

11 11 Referências Comer, Douglas E., Interligação de Redes Com Tcp/ip James F. Kurose, Redes de Computadores e a Internet Escola Superior de Redes, Arquitetura e Protocolos de Redes TCP/IP


Carregar ppt "Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho."

Apresentações semelhantes


Anúncios Google