Socket suma

Iniciado por luzmery, 11 Octubre 2017, 02:23 AM

0 Miembros y 1 Visitante están viendo este tema.

luzmery

Estoy realizando una suma con sockets, donde se pide la suma por el lado del cliente, el servidor recibe los números, realiza la suma y le devuelve el resultado al cliente. Hice el programa pero me bota error en el momento de dar el resultado de la suma!! Alguien me puede ayduar!!

Clase Servidor

package servidorsuma;

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

/**
*
* @author HP
*/

class ServidorSuma {
  public static void main(String []xf){
  int x,y,sum;
  String a,b;
  ServerSocket ss=null;

  try {
    ss=new ServerSocket(5051);
  }
  catch(IOException e){}

  try{
    Socket s1=ss.accept();
    InputStream is=s1.getInputStream();
    DataInputStream dis=new DataInputStream(is);
    a=dis.readUTF();
    System.out.println("el numero recibido es:"+a);

    Socket s2=ss.accept();
    InputStream is2=s2.getInputStream();
    DataInputStream dis2=new DataInputStream(is2);
    b=dis2.readUTF();
    System.out.println("el numero recibido es:"+b);

    x=Integer.parseInt(a);
    y=Integer.parseInt(b);

    sum=x+y;

    Socket sc=new Socket("localhost",5052);
    OutputStream os=sc.getOutputStream();
    DataOutputStream dos=new DataOutputStream(os);
    dos.writeUTF("la suma total es:" + sum);

    dos.close();
    s1.close();
    s2.close();   
    }
    catch(IOException e){}
  }
}
Clase Cliente

    package clientesuma;
    import java.net.*;
    import java.io.*;
    /**
     *
     * @author HP
     */
    public class ClienteSuma {
      public static void main(String []xf){
      ServerSocket ss=null;
      try{

        ss=new ServerSocket(5052);

        System.out.println("escriba los numeros para enviarlos con el servidor");

        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));

        String cad1,cad2;


        cad1=bf.readLine();

        Socket sc1=new Socket("localhost",5051);
        OutputStream os1=sc1.getOutputStream();
        DataOutputStream dos1=new DataOutputStream(os1);
        dos1.writeUTF(cad1);

        cad2=bf.readLine();   

        Socket sc2=new Socket("localhost",5051);
        OutputStream os2=sc2.getOutputStream();
        DataOutputStream dos2=new DataOutputStream(os2);
        dos2.writeUTF(cad2);

        Socket s1=ss.accept();
        InputStream is=s1.getInputStream();
        DataInputStream dis=new DataInputStream(is);
        System.out.println(dis.readUTF());

        dis.close();
        s1.close();
        sc1.close();
        dos1.close();
        sc2.close();
        dos2.close();
    }

    catch(IOException e){
        System.out.println("Error: no se encontro el servidor");
    }

  }
}

MCKSys Argentina

El código que colocaste es el mismo que pusiste en tu último post (https://foro.elhacker.net/java/explicacion_sobre_sockets-t475517.0.html)

Entendiste lo que hace el código? De lo contrario se te complicará mucho hacer algo si no entiendes el funcionamiento básico.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


luzmery

si entendi lo que hace pero quisiera saber como seria con una suma ya si como dije

MCKSys Argentina

Te dejo una idea de cómo trabajar el tema: https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html

Seguro que desde ahí, puedes lograr lo que quieres.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."