Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Magnata007

Calculo simples com sockets

Recommended Posts

Boa tarde galera,

 

Eu preciso criar uma aplicação em java utilizando sockets onde o lado cliente envie para o servidor uma operação matemática e o servidor deverá retornar o valor da operação. Pode ser uma operação simples tipo uma soma...

 

Alguem pode me dar uma luz...

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olás...

 

Eu tentei criar aqui, e consegui fazer a conta direto no cliente... mas preciso que a soma seja feita no servidor, meu problema maior esta sendo este, não sei como fazer para que no arquivo do servidor calcule os dois dados vindos do cliente... segue o código que fiz, e fico no aguardo de ajudas... :)

 

Arquivo01:

TCPServer.java (Servidor)...

 

import java.io.*;     //para acesso às classes para entrada/saída de streams
import java.net.*;    //para acesso às classes Socket e ServerSocket
import javax.swing.*; //para usar quadros de diálogos

public class TCPServer {
	
   public static void main(String argv[]) throws Exception {
   	
         String textoCliente="começar";
         String textoMaiusculas;
         
         System.out.println("Servidor executando.....agora pode iniciar o cliente...\n\n");

         // cria socket de servidor de comunicação com clientes na porta 6666: 
         ServerSocket serverSocket = new ServerSocket(6666);
         Socket socket = serverSocket.accept(); 

         //accept(): este método espera pela conexão de algum cliente e a aceita.
         //O objeto socket é usado para estabelecer a conexão/comunicação com o cliente.
         //O número de porta poderia ser outro, sempre que os clientes utili-
         //zem o mesmo número, para estabelecer comunicação com este servidor

                  
         ObjectInputStream inFromClient = 
                 new ObjectInputStream(socket.getInputStream());
         ObjectOutputStream outToClient = 
                 new ObjectOutputStream(socket.getOutputStream());
         
         do{ // espera fluxos de dados de algum cliente

            // lê uma linha do cliente e mostra o texto em quadro de diálogo
            textoCliente = (String) inFromClient.readObject();
            
            System.out.println("valor: " + textoCliente);

            // transforma a linha em maiúsculas
            textoMaiusculas = textoCliente.toUpperCase();
            
            
            
            // envia a linha em maiúsculas para o cliente
            outToClient.writeObject(textoMaiusculas);
         
         } while (!textoCliente.equalsIgnoreCase("FIM"));
         
         // fecha a conexão do servidor e os objetos de E/S:
         inFromClient.close();
         outToClient.close();
         socket.close();
         serverSocket.close();
         
      }
}

 

 

 

Arquivo02:

TCPClient.java (Cliente)...

 

 

import java.io.*;  // para acesso às classes para entrada/saída de streams
import java.net.*; // para acesso às classes para socket
import javax.swing.*; //para usar quadros de diálogos

public class TCPClient { 
	
  public static void main(String argv[]) throws Exception {
  	
   String numeroA, numeroB, textoServidor;
   int numero1, numero2, soma;

   System.out.println("Cliente executando.....\n\n");

   Socket clientSocket = new Socket("127.0.0.1", 6666); 

   //Criou o socket de acesso ao servidor com IP 192.168.3.28 na porta 6666.
   //O objeto clientSocket é usado para estabelecer a conexão/comunicação com o servidor.
   //Podemos usar 127.0.0.1 (localhost) ou um endereço IP conhecido do servidor.

   // Cria os streams (encadeamentos) de entrada e saida com o servidor:
   ObjectOutputStream outToServer = 
                  new ObjectOutputStream(clientSocket.getOutputStream());
                     	
   ObjectInputStream inFromServer = 
                  new ObjectInputStream(clientSocket.getInputStream());
                
   //
   //o construtor ObjectInputStream(InputStream in) cria um objeto que lerá 
   //fluxos de dados da InputStream especificada
   //
   //o construtor ObjectOutputStream(OutputStream out) cria um objeto que 
   //enviará fluxos de dados para a OutputStream especificada 

   
   
   
   
   
   
   

     // lê uma linha do usuário:
     numeroA = JOptionPane.showInputDialog(null,
                    "Digite o primeiro numero: ", 
                    "Aplicativo cliente", JOptionPane.INFORMATION_MESSAGE);
	
	numeroB = JOptionPane.showInputDialog(null,
                    "Digite o segundo numero: ", 
                    "Aplicativo cliente", JOptionPane.INFORMATION_MESSAGE);
                    
                    
                    
	    //converte os números de string para inteiro
    numero1 = Integer.parseInt(numeroA);
    numero2 = Integer.parseInt(numeroB);
    
    
    //efetua a soma dos números
    soma = numero1 + numero2;                    
                    

     // envia a linha para o servidor:
    outToServer.writeObject(numeroA); 
	outToServer.writeObject(numeroA);      	

     // lê resposta do servidor e a mostra em quadro de diálogo:
     textoServidor = (String) inFromServer.readObject(); 
     JOptionPane.showMessageDialog(null,"Valor da soma é: " 
                  + soma, "Aplicativo cliente", 
                  JOptionPane.INFORMATION_MESSAGE);
     
     
   


   // fecha a conexão do cliente e os objetos de E/S:
   outToServer.close();
   inFromServer.close();
   clientSocket.close(); 
   
   }//fim do método main
   
}//fim da classe

 

Fico no aguardo....

 

Obrigado............

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.