Foro de elhacker.net

Programación => Java => Mensaje iniciado por: luzmery en 11 Octubre 2017, 02:23 am



Título: Socket suma
Publicado por: luzmery en 11 Octubre 2017, 02:23 am
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");
    }

  }
}


Título: Re: Socket suma
Publicado por: MCKSys Argentina en 11 Octubre 2017, 02:44 am
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 (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!


Título: Re: Socket suma
Publicado por: luzmery en 11 Octubre 2017, 03:43 am
si entendi lo que hace pero quisiera saber como seria con una suma ya si como dije


Título: Re: Socket suma
Publicado por: MCKSys Argentina en 11 Octubre 2017, 04:10 am
Te dejo una idea de cómo trabajar el tema: https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html (https://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html)

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

Saludos!