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");
}
}
}
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!
si entendi lo que hace pero quisiera saber como seria con una suma ya si como dije
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!