As Atividades Redes
Por: Lorrany Santos • 2/8/2021 • Ensaio • 606 Palavras (3 Páginas) • 133 Visualizações
Laboratório 3
Nome: Amanda Cintra
1)
[pic 1]
2)[pic 2]
[pic 3]
[pic 4]
3) O socket passa a ficar disponivel a partir da linha 13 do codigo do servidor, onde esta
escrito “ServerSocket welcomeSocket = new ServerSocket(porta);”.
4) A conexão e processada a partir da linha 21 do código do servidor, onde o servidor
passa a poder iniciar a leitura ou escrita dos bytes no socket.
5) Caso o while seja removido, apos a primeira conexão, o servidor encerrara o socket.
6) O servidor aceita a segunda conexão imediatamente apos o encerramento da troca de
mensagens com o primeiro cliente. Isso ocorre porque um servidor não consegue conectar
mais de um cliente em um socket ao mesmo tempo.
7) Quando o close não é realizado no servidor, ele não termina a ligação com o cliente e
quando o close não é realizado no cliente a conexão com o servidor ainda continua.
Laboratório 4
01 - A principal diferença entre os códigos de socket UDP e TCP que no TCP existe a
necessidade de estabelecer uma conexão entre o servidor e o cliente pra que depois seja
enviada a mensagem desejada:
Socket connectionSocket = welcomeSocket.accept();
System.out.println("Conexao [" + numConn++ + "] aceita....");
Ja no socket UDP, o servidor fica sempre pronto para receber o datagrama sem a
necessidade de gerar uma conexão entre cliente e servidor:
DatagramPacket receivePacket = newDatagramPacket(receiveData,receiveData.length);
System.out.println("Esperando por datagrama UDP na porta " + porta);
No codigo UDP nao existe a necessidade de fechar o servidor apos a troca de
mensagem, ao contrario do que acontece no TCP:
connectionSocket.close();
Ou seja, a conexão UDP ficará aguardando mais conexões.
No momento que um cliente digita uma mensagem no UDP, é criado um datagrama
automaticamente que é enviado ao servidor que, já passui IP e a porta desse cliente, onde
o servidor recebe o pacote e reenvia ele para o próprio cliente em seguida, e assim
aguarda outro datagrama :
System.out.println("Digite o texto a ser enviado ao servidor: ");
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket = new
DatagramPacket(sendData,sendData.length, IPAddress, porta);
Onde no TCP ocorre de outra forma. A partir do momento que ele é conectado ao servidor,
o cliente manda as informações para o servidor, onde o servidor reenvia de volta, e em
seguida é fechado imediatamente a conexão:
System.out.println("Digite string a ser enviada para o servidor");
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');modifiedSentence = inFromServer.readLine();
System.out.println("Recebido do servidor: " + modifiedSentence);
...