Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Relatório - Redes

Por:   •  10/4/2018  •  2.660 Palavras (11 Páginas)  •  345 Visualizações

Página 1 de 11

...

byte[] sendData = new byte[1024];

byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();

sendData = sentence.getBytes();

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

clientSocket.send(sendPacket);

DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

clientSocket.receive(receivePacket);

String modifiedSentence = new String(receivePacket.getData());

System.out.println("Do servidor:" + modifiedSentence);

clientSocket.close();

}

}

}

3.7 Modificações: bloquear resposta do servidor a um usuário indesejado

Para que o servidor não receba pacotes de um ou mais clientes específicos, é possível alterar o programa para que isso não aconteça, através do IP. A aplicação Java foi alterada para que isso fosse possível, com o exemplo de IP “/172.17.13.249”.

 if (!"/172.17.13.249".equals(IPSTRING)){

                  int port = receivePacket.getPort();

                  String capitalizedSentence = sentence.toUpperCase();

                  sendData = capitalizedSentence.getBytes();

                  DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);

                  serverSocket.send(sendPacket);

                  }

Nesse trecho do programa, o servidor verifica se o IP do Cliente é o indesejado, e se for, ele não toma responde.

4. Transmission Control Protocol (TCP)

4.1 Execuções do cliente e servidor

Da mesma forma que foi criado aplicações Java para o software UDP, o mesmo foi feito para o TCP. Nesse caso, o Servidor estabelece uma conexão com o Cliente para que a mensagem possa ser transmitida. Após isso, a mensagem é transmitida para o servidor que excuta a aplicação e retorna a mensagem de resposta. Por fim, a conexão é fechada. O servidor TCP também entra em Loop permanente para que possa receber varias requisições.

Com o cliente o processo é parecido: há uma tentativa de conexão com o servidor com a especificação da porta e do IP do servidor. Após a conexão ser estabelecia, a mensagem pode ser enviada. Em seguida o socket aguarda a resposta do servidor e escreve a mensagem de resposta.

4.2 Execuções do cliente antes do servidor

Caso o cliente seja executado antes do servidor, ocorre um erro que não acontecia no UDP, em função da necessidade de se estabelecer uma conexão para o a mensagem ser enviada.

4.3 Execuções com portas distintas

Ao executar o cliente e o servidor com portas distintas, não é possível estabelecer conexão, então como no item anterior, diferentemente do UDP, ocorre um erro na execução.

4.4 Testes de comunicação entre máquinas diferentes

Assim, como no UDP, para estabelecer conexão com outras máquinas, bastou que os usuários envolvidos conhecessem o IP da máquina de destino e alterasse no programa. Os testes ocorreram como na própria máquina e não houve congestionamento de dados ao enviar várias mensagens de máquinas diferentes ao mesmo tempo.

4.5 Principais diferenças cliente e servidor UDP e TCP

As principais diferenças entre o os dois protocolos é que o UDP utiliza datagramas para enviar a mensagem, que é mais simples que os pacotes TCP e que o UDP não necessita de uma conexão para enviar a mensagem.

4.6 Modificações: o servidor atuando como uma calculadora

Neste caso, bastou programar as quatro operações básicas no servidor e estabelecer uma ordem para os caracteres enviados pelo cliente. O servidor entenderá a mensagem como um vetor de 3 dimensões separadas por “:”, então o cliente deverá inserir os valores da seguinte maneira: 1ºalgrismo:2ºalgarismo:operação(+,-,* ou /). Abaixo segue estrutura do novo servidor:

package tcpsocket;

import java.io.*;

import java.net.*;

class TCPServerSoma {

public static void main (String args[]) throws Exception {

ServerSocket serverSocket = new ServerSocket(8200);

String operacao[] = new String[3];

float num[] = new float[2];

String input = "null";

String resultado = null;

while (true)

{

System.out.println("Esperando conexão na porta 9000");

Socket s = serverSocket.accept();

System.out.println("Conexão estabelecida de " + s.getInetAddress());

BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));

input = br.readLine() + ":";

operacao = input.split(":");

num[0] = Float.parseFloat(operacao[0]);

num[1] = Float.parseFloat(operacao[1]);

if ("+".equals(operacao[2])){

...

Baixar como  txt (13.3 Kb)   pdf (58.2 Kb)   docx (17.8 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no Essays.club