Pular para o conteúdo principal

Sistemas distribuidos: Enviando mensagens TCP Parte II - Servidor

Igual ao servidor UDP esse servidor só vai receber a mensagem e envia-la de volta , ou seja é um servidor de ECO mas com boa vontade basta fazer algumas alterações que vc tem um servidor de chat :-) .

Server TCP:

import java.net.*;
import java.io.*;
public class TCPServer {

    public static void main(String[] args) {
      
        try {
            int serverPort = 7896;
            ServerSocket listenSocket = new ServerSocket(serverPort);
            //socket de escuta o socket que vai atender as requisições
            
            while(true){
                Socket client = listenSocket.accept( );
                Connection c = new Connection(client);
                //precisamos criar a classe conection que vai 
               //inicializar nossas threads para atender a cada requisição
            }
        } catch (IOException e) {
            System.out.println("Listem :" + e.getMessage( ));
        } 
        
    }//fim do main
}//fim da classe



Depois de finalizado a classe servidor precisamos criar a classe adicional
Connection que vai gerar uma thread para cada cliente que solicitar conexão com o servidor .


import java.net.*;
import java.io.*;

public class Connection extends Thread {
    DataInputStream in;
    DataOutputStream out;
    Socket client;

    public Connection(Socket client) {
        
        try {
        this.client = client; 
        in = new  DataInputStream( client.getInputStream( ) );
        out = new DataOutputStream(client.getOutputStream( ) );
        this.start( );
        
        } catch (IOException e) {
            System.out.println("Connectio :" + e.getMessage( ));
        }
    }//fim do construtor
    
    
    @Override
    public void run( ){ 
        //metodo run que cria a nova thread
        //e implementa o servidor de eco
       
        try {
             String data = in.readUTF( );
             System.out.println("Dados que Chegaram:" + data);
             out.writeUTF(data);
        } catch (Exception e) {
            System.out.println("Erro: " + e.getMessage( ));
        }finally{
            try{
                    client.close( );
                }catch(IOException ex){
                    System.out.println("Close Falhou");
                }
        }
        
    }//fim do run
    
}//fim da classe


Para testar o servidor vá no menu executar e mande "Limpar e construir o projeto principal " com isso o servidor vai ser empacotado em um jar , depois basta abrir um terminar e executar o jar , em seguida abra o projeto do cliente rodando o projeto a seguir e veja as duas partes se comunicando .

Comentários

  1. João obrigado pelo material, muito bom. Gostaria de saber se tem como adicionar criptografia usando cifra de substituição ROT13, ou cifra de Vigenere. Estou com um trabalho que pede que os sockets UDP e TCP sejam criptografados. Se fosse acrescentar esses códigos de criptografia no código acima, como ficaria.
    Se você puder me ajudar nessa questão, ficarei muti grato.
    Desde já agradeço.

    ResponderExcluir
  2. Desculpa a demora em responder Francisco, ando ocupado com o Doutorado.
    Bom pelo que eu sei o Java não possui suporte (bibliotecas) para o cifrador de Vigenere, vc pode até procurar quem sabe alguem já implementou e disponibilizou o cifrador.
    Acho que vc vai ter que implementar isso na camada de aplicação, nos dois lados na aplicação local e remota. Acredito que seja relativamente tranquilo de fazer, já passei essa implementação como tarefa para alguns alunos de graduação e foi relativamente tranquilo.

    [ ]'s

    ResponderExcluir

Postar um comentário

Ajude o blog a melhorar comente!!!

Postagens mais visitadas deste blog

Projetos em Sala de aula

A educação baseada em projetos vem sendo usada como uma metodologia poderosa para melhor preparar estudantes do século 21, já que leva os alunos a trabalhar em conjunto, se organizar, pesquisar e executar harmonicamente. Porém, antes de levar a metodologia para a sala de aula, será que os professores sabem como e quais projetos trabalhar em suas disciplinas? Uma dessas novidades é o  PBLU (Project Based Learning University ), plataforma gratuita que ajuda a capacitar professores para o uso de projetos em suas disciplinas, como uma forma de agregar conteúdo e motivar os estudantes. Conheça os oito pontos principais para um bom programa de aprendizagem baseada em projeto: Ter conteúdo relevante.   O objetivo da abordagem é trabalhar os conceitos-chave das disciplinas acadêmicas a partir de um projeto. Desenvolver habilidades para o século 21.   Ao longo do projeto, os alunos deverão buscar uma resposta a um problema. Para isso, eles deverão buscar referências...

Meu kit de desenvolvimento de software do dia a dia

Conjunto de 10 ferramentas do dia a dia , as que mais utilizo para desenvolvimento de software, ainda tem outras mas essa pequena lista já é bem representativa  :-) , se você tem outras sugestões de aplicativos comente no post . 1 - Java  Principal linguagem que utilizo( vocês já devem ter percebido pelos posts : -)  ) , apresar de vez em quando usar o C/C++ , bash e mais recentemente o ruby ... Java SE - Downloads | Oracle Technology Network | Oracle 2 - IDE : Netbeans  Pra mim ainda é a mais completa apresar de reconhecer que o eclipse em muitas maquinas roda bem mais rápido , prefiro o netbeans pelo conjunto de ferramentas integradas, e no geral não preciso configurar nada , estou ficando preguiçoso de ter que mexer , configurar e fuçar tutoriais para que as coisas funcionem ... em fim , vou de Netbeans . Welcome to NetBeans 3- Editor de texto generico : TextWrangler Gratuito, bom para editar HTML , scripts em bash e ruby, não é uma ferramenta do...

Encurtador de URL Seguro

Essa é para quem usa o twitter : A McAfee lançou recentemente seu próprio serviço de encurtador de URLs com um plus a mais: ele verifica, antes de redirecionar, se o site de destino contém alguma ameaça. Para quem tinha receio (com razão) em clicar em URLs encurtadas como tinyurl.com e bit.ly esta solução com certeza trará mais tranquilidade no que diz respeito a segurança. Para acessar o serviço, que ainda está em beta, basta seguir para o endereço: http://mcaf.ee/ Fonte: Info Online