sábado, 1 de marzo de 2025

Explicacion de la funcionalidad de un servidor nativo desde JAVA (Socket)

EXPLICACIÓN DE LA FUNCIONALIDAD DE UN SERVIDOR NATIVO DESDE JAVA (SOCKET)

Presentado por:
Andres Bonilla.
Aspirante.


Por medio de una guía de aprendizaje se dio la indicación de la creación de una wiki que se encargara de recopilar la funcionalidad del código aplicado durante la misma y con los criterios a adicionar por parte del aprendiz, la creación de esta wiki busca cumplir con los requerimientos solicitados para recopilar la funcionalidad de un servidor interno y nativo desde java con la clase Socket (cabe aclarar que no es el titulo original de la actividad a la que refiere, sin embargo a consideración del editor y aprendiz es el tema central).

Para esta actividad se tienen en cuenta los siguientes criterios:

- Para esta explicación se tendrá en cuenta únicamente las partes más importantes del mismo parra no alargar innecesariamente esta publicación.

 

- Con respecto al Código y a la explicación del docente sobre el mismo, se buscó un cambio en cuanto al nombre de las variables y métodos

 

- Por medio de capturas obtenidas directamente desde el editor de Código utilizado (Apache NetBeans IDE 17) se explicará el Código.

 

Archivos y explicación de Código:

1. ClienteHilo.

Dentro de este archivo se genera el siguiente código:


ClienteHilo, que extiende de la clase Thread tiene la función de crear las  clases: In & Out, las cuales son un acceso  directo a lo que es el  servidor nativo que en un momento se creara; gracias  a estas clases  es que podemos ingresar valores directamente al servidor.


2. ServerHilo.

Dentro de este archivo se genera el siguiente código:

ServerHilo, al igual que ClienteHilo busca crear una serie de accesos al servidor, en este caso le  agrega el String datos que más adelante va a permitir mostrar una serie de Strings o Ints dentro de lo que le pidamos  que  muestre el servidor.


3. Server.

Dentro del servidor, lo que creamos es un ServerSocket que almacene temporalmente  una serie  de datos, los cuales, claramente no los tendrá de  base el servidor, los mismos tendrá que  ser digitados por el usuario dentro de una clase que en  un momento se  explicara; el servidor  da una serie de requerimientos,  es decir requisitos para poder cumplir las funciones establecidas, las cuales para el ejemplo son almacenar temporalmente lo ingresado, el servidor por defecto quedara encendido dentro del  editor de código,  y tiene que estarlo para poder  recibir la información necesaria.



4. Cliente.


Este archivo tiene dos partes, esta imagen es la primera, se está creando el acceso y la conexión directa con el servidor antes comentado, la ip establecida por defecto (la que tiene el servidor) es 127.0.0.1 con el puerto 5000; a partir de esto se crean las instancias que en los anteriores archivos se había creado, como in o out, a partir de estas se ingresara la información obtenida de los requisitos que pedía la actividad, los cuales eran:

  •  Se deben pedir 10 números.
  •  La suma de todos estos.
  •  Encontrar el número mayor y menor.

A partir de esto se crea un ciclo for para pedir los diez números, se empieza el contador desde 1 hasta que se cumpla la condición de ser igual a 10, este se pide a partir del ingreso de datos del usuario por parte de la clase Scanner, y por medio de la misma el valor de cada número se almacena temporalmente (1=100 es un ejemplo), en cuanto a encontrar el número mayor y menor, por medio de un condicional if se solicita que el numero < menor, siendo menor una variable resultante de un Integer.MAX_VALUE, que busca iniciar con el mayor número posible de la variable, y el condicional lo que hace es preguntar si este número es menor que el número que el usuario estará digitando, con cada número que pregunte se hará este proceso, modificando su valor constantemente, es la misma teoría para el numero mayor.


Frente a la segunda parte del codigo:

Lo que se busca aquí es la impresión en la terminal del resultado de la suma de todos los números y el menor y mayor de todos los ingresados, además por medio del uso de la creación de una variable se ingresan estos valores para enviarlos directamente al servidor con las instancias y requisitos que el mismo necesita para poder mostrarlas en la consola del servidor. Para todo este proceso fue necesario el uso de un Try & Catch, que se encargara de instanciar todo el proceso, por si durante ocurre algún error siguiera ejecutando en cuando fuera capaz el programa en cuestión.


FUNCIONAMIENTO DEL PROGRAMA:

Para la correcta ejecución del programa, primero se debe encender el servidor por medio de Shift + F6, la consola se abrirá, saldrá un mensaje y la ejecución quedará en segundo plano, se puede ver de la siguiente forma:


Luego, se ejecuta el archivo Cliente y desde allí saldrá un mensaje que indicara donde se debe ingresar el dato del numero solicitado, posterior al ingreso de los 10 números solicitados, el programa mostrara cual es el numero mayor, el numero menor y la suma total de datos, y la terminación del programa.



Posterior al resultado que arroja Cliente, se regresa a la terminal del servidor y se puede observar lo siguiente:


De esta forma se da por terminada la explicación del programa solicitado en la actividad número 2 del curso complementario. El código completo se podrá encontrar en el siguiente link:




Este post fue creado por Andres Bonilla, aspirante.

















2 comentarios:

Consultas de SQL server desde Java JDB.

 Consultas de SQL server desde Java JDB y apache NetBeans Presentado por: Andres Bonilla. Aprendiz. SQL es el lenguaje usado para consultar ...