Introducción a la programación de sockets en Java

La World Wide Web e Internet ha cambiado la forma en que vivimos y nos comunicamos entre nosotros y la forma en que llevamos a cabo la ciencia, la ingeniería y el comercio. La vida moderna está siendo completamente conducida o centrada en Internet. Las empresas buscan continuamente nuevas formas de producir y comunicarse con diversos servicios de una nueva manera, introduciendo innovación. En este artículo, analizaremos la programación de sockets en Java.

Los sockets proporcionan una interfaz para programar redes de la capa de transporte del modelo OSI. Las comunicaciones de red que utilizan sockets se encuentran en todas partes en Internet. Además de eso, un programa de socket escrito en Java puede comunicarse con un programa de socket escrito en lenguaje no Java como C, C ++, Python, etc.

Métodos de clase de socket

Los métodos de clase de socket se encuentran en Java. Un socket debe ser un número de puerto para que el TCP reconozca el número de puerto en el que se enviarán los datos. Java proporciona un conjunto de clases, una de las cuales es java.net. Esto se utiliza para el rápido desarrollo de aplicaciones de red. Las clases clave, las interfaces y las excepciones que están presentes en el paquete java.net simplifican la complejidad involucrada en la creación de programas de cliente y servidor:

Las clases son:

  • Controlador de contenido
  • Paquete de datagramas
  • Enchufe de datagrama
  • Datagram Socket Imp 1
  • Conexión URL HTTP
  • Yo dirección neta
  • Zócalo de multidifusión
  • Zócalo del servidor
  • Enchufe
  • Socket Imp 1
  • URL
  • Conexión URL
  • Codificador de URL
  • URL Stream Handler

Las interfaces son:

  • Fábrica de manipuladores de contenido
  • Mapa de nombre de archivo
  • Socket Impl Factory
  • Fábrica de controladores de secuencia de URL

Las excepciones son:

  • Excepción de enlace
  • Excepción de conexión
  • Excepción de URL con formato incorrecto
  • Sin ruta a la excepción de host
  • Excepción de protocolo
  • Excepción de socket
  • Excepción de host desconocida
  • Excepción de servicio desconocida.

Programación de socket TCP / IP

Hay dos clases usadas del paquete java.net que se usan en la creación de programas. Son:

  • Zócalo del servidor
  • Enchufe

Un programa de servidor se comunica a través de flujos de entrada y salida. Si hay una solicitud de conexión, entonces hay un nuevo socket que entra en juego y aquí se establece una conexión con él.

Método 1: crear un programa de socket de servidor

Hay varios pasos para crear un programa de socket de servidor en Java. Los pasos simples para crear un programa de socket de servidor son los siguientes:

Paso 1: se abre el servidor de sockets

Server Socket General = nuevo Server Socket (PO)

Aquí PO es el número de puerto.

Aquí, el número de Puerto se asigna a la red del servidor a través del cual se comunicará utilizando flujos de Entrada / Salida.

Paso 2: hay una solicitud del cliente por la que tenemos que esperar pacientemente

Socket General = servidor. aceptar()

Aquí el servidor. accept () espera al cliente y el nombre del socket es Client aquí.

Paso 3: Se crean flujos de E / S para que se establezca una conexión

La secuencia de entrada de datos es = nueva secuencia de entrada de datos (cliente. Obtener secuencia de entrada ());

Secuencia de salida de datos os = nueva Secuencia de salida de datos (cliente. Get Secuencia de salida ());

El flujo de entrada es y al flujo de salida os se les asigna su flujo de entrada de entrada () y se les llama respectivamente.

Paso 4: se crea contacto con el cliente

Recibir del cliente: String hello = br. Leer línea ();

Envíelo al cliente: br. Escribir bytes ("Cómo estás \ n");

El siguiente código se comunica con el cliente que recibe y envía las solicitudes a un cliente.

Paso 5 - Finalmente, el Socket está hecho para salir

Finalmente, la función de cierre del zócalo se utiliza para cerrar y finalizar la programación del zócalo.

A continuación se muestra un ejemplo simple de un socket de servidor:

// Un programa simple para conectar el servidor.

import java.net.*;
import java.io.*;
public class SimpleMachine (
public static void main(String args()) throws IOException (
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close(); )
)

Método 2: crear un programa simple de socket de servidor

Ahora vamos a ver un programa de cliente simple en Java. Los pasos para crear un programa cliente simple en Java se muestran a continuación:

Paso 1 - Se hace el objeto de socket

Cliente de socket = nuevo Socket (server, port_id)

El servidor y la ID del puerto están conectados, es decir, el servidor está conectado a la ID del puerto.

Paso 2 - Se crean flujos de entrada / salida

is = nuevo flujo de entrada de datos (client.getInputStream ());

os = nuevo flujo de salida de datos (client.getOutputStream ());

Input Stream is y Output Stream os se utilizan para comunicarse con el cliente.

Paso 3: las secuencias de entrada / salida se realizan para hablar con el cliente

Los datos se leen desde el servidor: String hello = br. readLine ();

Enviar datos al servidor: br.writeBytes ("Cómo estás \ n")

Este paso se comunica con el servidor. La secuencia de entrada y la secuencia de salida se comunican con el servidor.

Paso 4: cierre el zócalo cuando haya terminado

Esta función cerrará el cliente cuando finalmente se haga.

A continuación se muestra un ejemplo de un programa simple de socket de servidor

// Un programa simple para el cliente

import java.net.*;
import java.io.*;
public class SimpleMachineClient (
public static void main(String args()) throws IOException
(
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host", 1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
)
)

Conclusión: programación de sockets en Java

  • La programación de sockets es muy útil en Java y en cualquier otro lenguaje de programación, básicamente por el hecho de que un programa escrito en Java puede conectarse con un programa escrito en C o C ++.
  • En otras palabras, el lenguaje del programa de socket no importa cuando tiene que haber una conexión entre los dos.
  • En este artículo, básicamente hemos visto el ejemplo de Simple Server y Simple Client donde hay una conexión entre el socket del servidor y en el otro hay una conexión entre el socket del servidor.
  • Hemos utilizado la programación TCP / IP para lo mismo. Sin embargo, hay muchas técnicas de programación como las técnicas de programación UDP y las técnicas de programación de URL. No hemos visto ejemplos de esto en este artículo. Hemos enfatizado la técnica de programación TCP / IP.

Artículos recomendados

Esta es una guía para la programación de sockets en Java. Aquí discutimos los métodos de clase de socket con el programa java. También puede consultar nuestros otros artículos sugeridos:

  1. Paquetes Java
  2. Copiar constructor en Java
  3. Combinar Ordenar en Java
  4. Guía de los mejores compiladores de Java
  5. Ejemplo de paquete Java | Ejemplo de trabajo y codificación