¿Cómo crear un socket en un puerto específico en Java?

Un socket es un punto final de un enlace de comunicación bidireccional entre dos programas que se ejecutan en la red. Las clases de socket se utilizan para representar la conexión entre un programa cliente y un programa servidor. Programación de sockets, básicamente programación cliente-servidor donde se utiliza un socket como enlace entre ellos. Necesitamos importar el paquete ‘java.net en nuestro programa que proporciona dos clases, a saber, la clase Socket y la clase ServerSocket. La clase Socket implementa el lado del cliente de la conexión y la clase ServerSocket implementa el lado del servidor de la conexión.

Procedimiento: 

Para crear un socket, el paquete ‘ java.net ‘ debe importarse a partir de entonces utilizando la clase Socket y ServerSocket, creamos el objeto de esa clase.

  1. El servidor abre un ServerSocket en un puerto conocido y espera la entrada.
  2. Mientras tanto, el Cliente abre un Socket (cliente) con el nombre de host del servidor y esta dirección de puerto conocida.
  3. Envía un mensaje de solicitud al servidor para iniciar una sesión de comunicación.

En el lado del servidor

import java.net.Socket;
ServerSocket mySsocket= new ServerSocket(portnumber);

Nota: La clase ServerSocket toma un solo parámetro: número de puerto.  

Aquí, el ServerSocket se crea pasándole un número de puerto específico para escuchar.

Del lado del cliente

import java.net.Socket;
Socket myCsocket= new Socket( address, portnumber);

Nota: la clase Socket toma los dos parámetros, a saber, la dirección y el número de puerto. 

Esto le pide al lado del servidor la dirección IP, y luego abre un socket a ese servidor en ese puerto especificado.

Ejemplo 1: lado del servidor 

Java

// Java program for creating socket on Server-side
// Server program depicting creation of a socket
// at a specific port
 
// Importing majorly Socket and ServerSocket class
// from java.net package
import java.net.*;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Try block to check for exceptions
        try {
 
            // Creating an object of ServerSocket class
            // with the custom port number - 80
            ServerSocket mySsocket = new ServerSocket(80);
 
            // Display commands for better readability
            System.out.println("Server started");
            System.out.println("Waiting for a client ...");
 
            // Here it will wait for any client which wants
            // to get connected to this server
 
            // Establishing a connection
            // using accept() method()
            Socket socket = mySsocket.accept();
 
            // Display message
            System.out.println(
                "Client accepted through the port number: "
                + mySsocket.getLocalPort());
 
            // getLocalPort() function returning the port
            // number which is being used
        }
 
        // Catch block to handle for exceptions
        catch (Exception e) {
 
            // Simply return/exit
            return;
        }
    }
}

 Producción:

Server started
Waiting for a client ...
Client accepted through the port number: 80

Ejemplo 2: del lado del cliente

Java

// Java program for creating socket on Client-side
// Client program depicting creation of a socket
// at a specific port
 
// Importing majorly Socket and ServerSocket class
// from java.net package
import java.net.*;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Try block to check for exceptions
        try {
 
            // Creating an object of Socket class where
            // port number same as server side program
            Socket myCsocket = new Socket("localhost", 80);
 
            // creating client with local ip address
            // port number as '80'
 
            // Display message for better readability
            System.out.println("Connected to Server");
        }
 
        // Catch block to handle exceptions
        catch (Exception e) {
 
            // Simply return and exit the program
            return;
        }
    }
}

Producción:

Connected to Server

Publicación traducida automáticamente

Artículo escrito por yashgupta2808 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *