Programación de sockets basada en el protocolo tcp
Cliente:
Importar Java .net *;
Importar Java io *; p>
Public static void main(String[] args) {
prueba {
Socket socket = new socket(" 127.0.0.1 ", 5566
System.out.println("Ingrese la fórmula:");
lector almacenado en búfer br = nuevo lector almacenado en búfer (nuevo InputStreamReader(system . in));
string s 1 = br . readline();
flujo de salida de datos dos = nuevo flujo de salida de datos(socket . get flujo de salida());
flujo de entrada de datos dis = nuevo flujo de entrada de datos ( socket . getinputstream());
dos .escribir utf(s 1);
dos .
doble s = dis . double ();
System.out.println("Resultado del cálculo: " s);
dis .
dos . ;
socket . close();
} captura (IOException e) {
e . out .println("Error de conexión");
system exit(-1);
}
}
}<. / p>
Lado del servidor:
Importar Java.net.*;
Importar Java.io.*;
Clase pública TestSocketServer { p >
Public static void main(String[] args) {
Prueba {
server socket ss = new server socket(5566);
socket socket = ss aceptar();
flujo de salida de datos dos = nuevo flujo de salida de datos(socket . get flujo de salida());
flujo de entrada de datos dis = nuevo flujo de entrada de datos( socket .getinputstream());
Cadena s = null
if ((s = dis.readUTF())! = null) {
System.out.println("La fórmula recibe: " s);
Resultado doble = 0;
cadena[]sarr 1 = s . split("[\ \ \ \-\ \ * \ \/]");
doble a =.
doble .parse doble(sarr 1[0]). trim());
doble b = doble . analizar doble(sarr 1[1]). trim());
String[] sarr2 = s.split("^(-?\\d )(\\.\\d )?");
char c = sarr2[1]. ciruela pasa(). charAt(0);
Interruptor (c) {
Caso " ":
Resultado = a b;
Descanso
p>
Caso '-':
Resultado = a-b;
Descanso
Caso '*':
Resultado; = a * b;
Pausa;
Caso "/":
Resultado = a/b; p>
Valor predeterminado:
Break;
}
dos.writeDouble(resultado);
dos .
}
cierre();
dos . /p>
} catch (IOException e) {
e . printstacktrace();
salir(-1); /p>
}
}