Utilizando socket elabore una aplicación que permita escanear los puertos mediante un for, cree un socket que se conecte al número de puerto especificado en el host y muestre la información del socket encendido en dicho puerto.
El siguiente ejercicio viene por parte de un seguidor de la
página.
Antes de ver la solución, recordemos que es un socket y para qué sirve.
¿Qué es un socket?
Un Socket es una conexión entre dos host. Bajo esta conexión, se pueden
ejecutar las siguientes operaciones básicas:
• Conectarse a una máquina remota.
• Enviar datos.
• Recibir datos.
• Cerrar una conexión.
• Escuchar datos entrantes.
• Aceptar conexiones de máquinas remotas.
La clase java Socket, la cual es usada tanto por aplicaciones cliente como
aplicaciones servidor, tiene métodos que permiten implementar las cuatros
primeras operaciones; las restantes, son exclusivas de aplicaciones
servidor.
Los programas java utilizan normalmente sockets cliente de la
siguiente manera:
1. El programa crea un nuevo socket utilizando el constructor Socket().
2. El socket intenta conectarse a un host remoto.
3. Una vez establecida la conexión, las máquinas local y remota obtienen
flujos de entrada y salida desde el socket y usan estos flujos para
intercambiar información.
4. Cuando la transmisión de datos ha sido completada, una de las dos
partes, o ambas, cierran la conexión.
Muy bien, sabiendo estos conceptos, les dejo la solución al ejercicio
que no envió Victor desde Facebook.
Solución
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package aprendamos.java.socket; import java.io.IOException; import java.net.*; public class ScannerPuertos { // Host para la conexión. String host = "localhost"; // Constructor de la clase. public ScannerPuertos() { // Verificando puervtos del host. for (int i = 130; i < 200; i++) { System.out.println("Iteración número: " + i); try { // Crea un socket de flujo y lo conecta al puerto // especificado en el host nombrado. Socket s = new Socket(host, i); System.out.println("Hay un servidor en el puerto " + i); System.out.println("Dirección local: " + s.getLocalAddress()); System.out.println("Puerto local : " + s.getLocalPort()); System.out.println("Puerto remoto : " + s.getPort()); System.out.println("Dirección Inet : " + s.getInetAddress()); // El puerto local es asignado automáticamente en tiempo de ejecución. } catch (UnknownHostException e) { // No se pudo determinar la dirección IP del host. System.out.println("Excepcion: " + e); break; } catch (IOException e) { // No debe existir un servidor en este puerto. } } } // Ejecuta la aplicación. public static void main(String args[]) { ScannerPuertos ps = new ScannerPuertos(); } } |
DESARROLLO TUS ALGORITMOS 🔥🔥
✅ 1. Envía tu algoritmo.
✅ 2. Indica en qué lenguaje de Programación lo deseas.
✅ 3. Para qué fecha lo quieres.
✅ 4. De que país eres (para tu forma de pago)
✅ 5. También se desarrollan al momento.
✅ 6. Los 3 primeros ejercicios son gratis.
🔸 Explico cada ejercicio que desarrollo en el código.
Cuenta Dcoder para más ejercicios de programación
Blog para novedades de programación
Tienda online para más recursos de programación
No hay comentarios, ¡cuéntame algo!
Me gustaría saber tu opinión. ¡Saludos!