Sockets

Los sockets son un mecanismo que nos permite establecer un enlace entre dos programas que se ejecutan independientes el

Views 113 Downloads 4 File size 1015KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Los sockets son un mecanismo que nos permite establecer un enlace entre dos programas que se ejecutan independientes el uno del otro (generalmente un programa cliente y un programa servidor) Java por medio de la librería java.net nos provee dos clases: Socket para implementar la conexión desde el lado del cliente y ServerSocket que nos permitirá manipular la conexión desde el lado del servidor.

Antes de comenzar a ver código (que es lo que todos queremos) explicaré cómo será el funcionamiento de nuestra aplicación cliente servidor usando sockets en Java, cabe resaltar que tanto el cliente como el servidor no necesariamente deben estar implementados en Java, solo deben conocer sus direcciones IP y el puerto por el cual se comunicarán. Para nuestro ejemplo de sockets implementaremos ambos (cliente y servidor) usando Java y se comunicarán usando el puerto 1234 (es bueno elegir los puertos en el rango de 1024 hasta 65535).

Código del socket servidor en Java:

package SOCKET; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.ServerSocket;

import java.net.Socket; import java.util.Scanner; public class server { String saldo = "1.000.000"; String cuenta = "0091 7234 8517"; static int PUERTO = 4200; ServerSocket server; Socket cl; DataOutputStream out; DataInputStream in; String mensajeRecibido; private Scanner teclado; public void initserver() { teclado = new Scanner(System.in); try { server = new ServerSocket(PUERTO); cl = new Socket(); System.out.println("Esperando conexión de algún cliente..."); cl = server.accept(); System.out.println("Cliente conectado"); in = new DataInputStream(cl.getInputStream()); out = new DataOutputStream(cl.getOutputStream()); String msn = ""; while (!msn.equals("fin")) { if (!msn.equals("saldo")) { server.close(); } mensajeRecibido = in.readUTF(); System.out.println(mensajeRecibido); System.out.println("la cuenta "+cuenta+" tiene un saldo actual de $"+saldo); msn = teclado.nextLine(); out.writeUTF("" + msn); if (!msn.equals("consignación")) { server.close(); } mensajeRecibido = in.readUTF(); System.out.println(mensajeRecibido); System.out.println("Favor digite la cantidad de dinero a consignar"); msn = teclado.nextLine(); out.writeUTF("" + msn); if (!msn.equals("retiro")) { server.close(); } mensajeRecibido = in.readUTF(); System.out.println(mensajeRecibido); System.out.println("Favor digite la cantidad de dinero que desea retirar"); msn = teclado.nextLine(); out.writeUTF("" + msn); } server.close(); } catch (Exception e) {

} } public static void main(String[] args) { server o = new server(); o.initserver(); } }

Código del socket cliente en Java:

package SOCKET; import import import import

java.io.DataInputStream; java.io.DataOutputStream; java.net.Socket; java.util.Scanner;

public class client { static String HOST = "127.0.0.1"; static int PUERTO = 4200; Socket clt; DataOutputStream out; DataInputStream in; String mensajeRecibido; private Scanner teclado; public void initClient() { teclado = new Scanner(System.in);

try { clt = new Socket(HOST, PUERTO); out = new DataOutputStream(clt.getOutputStream()); in = new DataInputStream(clt.getInputStream()); String msn = ""; System.out.println("Digite fin para terminar"); while (!msn.equals("fin")) { System.out.println("Digite saldo o consignación o retiro según la operación que va a realizar"); msn = teclado.nextLine(); System.out.println("Le escribí al servidor"); out.writeUTF(msn); System.out.println("El banco XYZ, le da las gracias por utilizar nuestros servicios"); mensajeRecibido = in.readUTF(); System.out.println(mensajeRecibido); } clt.close(); } catch (Exception e) { } } public static void main(String[] args) { client o = new client(); o.initClient(); } }

2. Socket cliente que llama al socket server para crear un cliente (inserción de un dato).

Clase Conexión, usando sockets en java.

La clase Servidor

La clase Cliente.

Código para usar el servidor con Sockets en Java

Código para usar el cliente con Sockets en Java.