Ir para conteúdo
Fórum CódigoFonte.net
zaidoh

Desafio: Implementação de Cliente-Servidor SorteioMegaSena.

Recommended Posts

Segue as duas classes(ServidorResultados, VerResultado) abaixo, basicamente há uma requisição feita pela classe VerResultado à classe ServidorResultados, Deixo-as aqui algumas informações e uma imagem para que vocês possam fazer as seguintes implementações:

  • Substitua as variáveis por uma coleção que o ajude a relacionar uma data de sorteio ao resultado do sorteio.I
  • Crie um método para preencher essa coleção com dados fictícios ou preencha manualmente antes de utilizá-la.II
  • Agora tanto o cliente como o servidor irão ler e enviar mensagens via socket. Você precisará de DataInputStream e DataOutputStream para ambos.III
  • No servidor, monte um String com as datas dos sorteios separados por vírgula. Assim, você pode enviá-la para o cliente.IV
  • V Para exibir as datas de sorteio e solicitar que o cliente escolha uma, você pode usar o diálogo criado pelo método estático showInputDialog da classe JOptionPane.
  • VI Você também pode criar uma janela personalizada para isso se tiver mais experiência com Swing.

 

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* @author zaidoh
*/
public class ServidorResultados {

private String resutlado;
private String dataSorteio;

public void iniciarServico() {

resutlado = "06-55-13-47-22-19";
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();
}

}

***********************************************************
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
/**
*
* @author zaidoh
*/
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);
}
}


Ver Imagem

megaSena

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...

×
×
  • Criar Novo...