Conozca todo sobre la programación de sockets en Java



La programación de Java Socket se utiliza para la comunicación entre las aplicaciones que se ejecutan en diferentes JRE. La programación de Java Socket puede estar orientada a la conexión o sin conexión.

Programación de socket en se utiliza para la comunicación entre las aplicaciones que se ejecutan en diferentes . Puede estar orientado a la conexión o sin conexión. En general, un socket es una forma de establecer una conexión entre un cliente y un servidor. En este artículo, te contaré todo sobre la programación de sockets.

En este artículo se tratan los siguientes temas:





¿Qué es la programación de sockets en Java?

Programación de socket es una forma de conectar dos nodos en una red para comunicarse entre sí. Uno enchufe (nodo) escucha en un puerto particular en una IP, mientras que otros enchufe se acerca al otro para formar una conexión.

Comunicación cliente-servidor - Programación de sockets en Java - Edureka



Java para ejemplos de programas de bucle

El servidor forma el oyente enchufe mientras el cliente se comunica con el servidor. Zócalo y zócalo del servidor se utilizan para la programación de conectores orientada a la conexión.

Ahora comprendamos el concepto central de la programación de sockets, es decir, un socket.

¿Qué es un socket en Java?

A enchufe en es un punto final de un enlace de comunicación bidireccional entre dos programas que se ejecutan en la red. UN enchufe está vinculado a un número de puerto para que la capa TCP pueda identificar la aplicación a la que están destinados los datos.



Un punto final es una combinación de una dirección IP y un número de puerto. El paquete en la plataforma Java proporciona una clase,Enchufeque implementa un lado de una conexión bidireccional entre su programa Java y otro programa en la red. La clase se encuentra en la parte superior de una implementación dependiente de la plataforma, ocultando los detalles de cualquier sistema en particular de su programa Java. Al usar la clase en lugar de depender del código nativo, su puede comunicarse a través de la red de forma independiente de la plataforma.

Ahora que ya sabe qué es Socket en Java, avancemos más y entendamos cómo se comunica el cliente con el servidor y cómo responde el servidor.

Programación del lado del cliente

En el caso de la programación del lado del cliente, el cliente primero esperará a que se inicie el servidor. Una vez que el servidor esté en funcionamiento, enviará las solicitudes al servidor. Después de eso, el cliente esperará la respuesta del servidor. Entonces, esta es toda la lógica de la comunicación entre el cliente y el servidor. Ahora comprendamos en detalle la programación del lado del cliente y del lado del servidor.

Para iniciar la solicitud de un cliente, debe seguir los pasos que se mencionan a continuación:

1. Establecer una conexión

El primer paso es establecer una conexión de socket. Una conexión de socket implica que las dos máquinas tienen información sobre la ubicación de la red (dirección IP) y el puerto TCP de la otra.

Puede crear un Socket con la ayuda de una declaración a continuación:

Zócalo zócalo = nuevo zócalo ('127.0.0.1', 5000)

  • Aquí, el primer argumento representa la Dirección IP del servidor .

  • El segundo argumento representa la Puerto TCP . (Es un número que representa qué aplicación debe ejecutarse en un servidor).

2. Comunicación

Para comunicarse a través de una conexión de socket, se utilizan flujos tanto para la entrada como para la salida de los datos. Después de establecer una conexión y enviar las solicitudes, debe cerrar la conexión.

3. Cerrar la conexión

La conexión de socket se cierra explícitamente una vez que se envía el mensaje al servidor.

Ahora veamos cómo escribir un programa Java para implementar la conexión de socket en el lado del cliente.

// Un programa Java para un ClientSide import java.net. * Import java.io. * public class ClientProgram {// inicializar el socket y los flujos de entrada y salida private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // constructor para poner la dirección IP y el puerto Public Client (String address, int port) {// establecer una conexión try {socket = new Socket (dirección, puerto) System.out.println ('Connected') // toma la entrada de la terminal input = new DataInputStream (System.in) // envía la salida al socket out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // cadena para leer el mensaje de la entrada String line = '' // seguir leyendo hasta que se ingrese 'Over' while (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // cierre la conexión try {input.close () out.close () socket.close ()} catch (IOException yo ) {System.out.println (i)}} public static void main (String args []) {Cliente cliente = nuevo Cliente ('127.0.0.1', 5000)}}

Ahora, implementemos la programación del lado del servidor y luego lleguemos a la salida.

Programación del lado del servidor

Básicamente, el servidor creará una instancia de su objeto y esperará la solicitud del cliente. Una vez que el cliente envía la solicitud, el servidor se comunicará con la respuesta.

Para codificar la aplicación del lado del servidor, necesita dos sockets y son los siguientes:

  • A ServerSocket que espera las solicitudes del cliente (cuando un cliente crea un nuevo Socket ())

  • Un viejo llano enchufe para la comunicación con el cliente.

Después de esto, debe comunicarse con el cliente con la respuesta.

Comunicación

getOutputStream () El método se utiliza para enviar la salida a través del conector.

Cerrar la conexión

Es importante cerrar la conexión cerrando el socket, así como los flujos de entrada / salida una vez que todo esté hecho.

Ahora veamos cómo escribir un programa Java para implementar la conexión de socket en el lado del servidor.

// Un programa Java para un servidor import java.net. * Import java.io. * public class ServerSide {// inicializar socket y flujo de entrada private Socket socket = null private ServerSocket server = null private DataInputStream in = null // constructor con port public Server (int port) {// inicia el servidor y espera una conexión try {server = new ServerSocket (puerto) System.out.println ('Servidor iniciado') System.out.println ('Esperando un cliente ... . ') socket = server.accept () System.out.println (' Cliente aceptado ') // toma la entrada del socket del cliente en = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) String line =' '/ / lee el mensaje del cliente hasta que se envía 'Over' while (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Cerrando conexión') // cierre la conexión socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Servidor servidor = nuevo servidor (5000)}}

Después de configurar tanto el cliente como el servidor, puede ejecutar primero el programa del lado del servidor. Después de eso, debe ejecutar el programa del lado del cliente y enviar la solicitud. Tan pronto como se envíe la solicitud desde el extremo del cliente, el servidor responderá. La siguiente instantánea representa lo mismo.

1. Cuando ejecute el script del lado del servidor, se iniciará y esperará a que el cliente comience.

2. A continuación, el cliente se conectará e ingresará la solicitud en forma de cadena.

3. Cuando el cliente envía la solicitud, el servidor responderá.

operador de resolución de alcance en c ++

Así es como necesitas ejecutar un programa de socket en Java. También puede ejecutar estos programas en una ventana de terminal o en un símbolo del sistema. Pero, como Eclipse está muy avanzado con sus funciones, simplemente puede ejecutar ambos programas en una consola.

Esto nos lleva al final del artículo sobre programación de sockets en Java. Espero haber arrojado algo de luz sobre sus conocimientos sobre Programación de sockets.

Revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Estamos aquí para ayudarlo en cada paso de su viaje, para que, además de estas preguntas de la entrevista de Java, se convierta en un plan de estudios diseñado para estudiantes y profesionales que desean ser desarrolladores de Java.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este artículo de “Programación de Socket en Java” y nos comunicaremos con usted lo antes posible.