Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com exercício cliente-servidor


fabio.francoso

Pergunta

Boa tarde,

Estou realizando um exercício e cheguei em um ponto onde não consegui mais. O execício consiste em realizar a comunicação cliente-servidor, onde é apresentado um resultado fictício da mega sena. Para apresentar apenas um resultado eu consegui, mas agora tenho que armazenar os resultados em um vetor e mostrar de acordo com a data escolhida pelo cliente.

Essa é a classe que ServidorResultados

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class ServidorResultados {
    
    private String resutlado;
    private String dataSorteio;
    
    public void iniciarServico() {
        
        resutlado = "06-55-13-47-22-18";
        dataSorteio = "08/10";
        
        try{

            ServerSocket ss = new ServerSocket(2012);
            while(true){
            	
            	System.out.println("Aguardando conexão..");            	
                Socket cliente = ss.accept();
                DataOutputStream dos = new DataOutputStream(cliente.getOutputStream());
                
                System.out.println("Enviando dados para "  + cliente.getInetAddress());
                dos.writeUTF(resutlado + "," + dataSorteio);
            }

        }catch(IOException ioe){
            System.err.println(ioe.getMessage());
        }
    
    }
    
    public static void main(String[] args) {
        ServidorResultados sr = new ServidorResultados();
        sr.iniciarServico();
    }
}

Classe VerResultados


import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;

public class VerResultado extends javax.swing.JFrame {

    
    public VerResultado() {
        initComponents();
    }

    
    @SuppressWarnings("unchecked")    
    private void initComponents() {

        lbTitulo = new javax.swing.JLabel();
        jsTitulo = new javax.swing.JSeparator();
        jlResultado = new javax.swing.JLabel();
        jbVer = new javax.swing.JButton();
        jlData = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(null);

        lbTitulo.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
        lbTitulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        lbTitulo.setText("Resultado da Mega Sena");
        lbTitulo.setToolTipText("");
        getContentPane().add(lbTitulo);
        lbTitulo.setBounds(0, 10, 420, 50);
        getContentPane().add(jsTitulo);
        jsTitulo.setBounds(20, 60, 390, 10);

        jlResultado.setFont(new java.awt.Font("Tahoma", 1, 36)); // NOI18N
        jlResultado.setForeground(new java.awt.Color(0, 108, 208));
        jlResultado.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        getContentPane().add(jlResultado);
        jlResultado.setBounds(20, 70, 390, 60);

        jbVer.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        jbVer.setText("Ver agora!");
        jbVer.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jbVerActionPerformed(evt);
            }
        });
        getContentPane().add(jbVer);
        jbVer.setBounds(60, 180, 300, 50);

        jlData.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jlData.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        getContentPane().add(jlData);
        jlData.setBounds(30, 130, 370, 30);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-439)/2, (screenSize.height-283)/2, 439, 283);
    }

    private void jbVerActionPerformed(java.awt.event.ActionEvent evt) {
        requisitarResultado();
    }

    
    public static void main(String args[]) {
        
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : 
            	javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (Exception ex) {
            System.err.println(ex.getMessage());
        }
       
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new VerResultado().setVisible(true);
            }
        });
    }
    
    private javax.swing.JButton jbVer;
    private javax.swing.JLabel jlData;
    private javax.swing.JLabel jlResultado;
    private javax.swing.JSeparator jsTitulo;
    private javax.swing.JLabel lbTitulo;

    private void requisitarResultado(){
        
        try{
            Socket servidor = new Socket("127.0.0.1",2012);
            DataInputStream dis = new DataInputStream(servidor.getInputStream());
            
            String resposta = dis.readUTF();
            String [] dados = resposta.split(",");
            
            exibirResultado(dados[0], dados[1]);
            
        }catch(IOException ioe){
            System.err.println(ioe.getMessage());
        }
        
    }
    
    private void exibirResultado(String resultado, String data) {
        jlResultado.setText(resultado);
        jlData.setText("Sorteio: " + data);
    }
}

Alguém pode ajudar?

Obrigado.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...