Una recomendación para la vida real, no utilicéis como nombre de variable “i” cuando se hace referencia a puerto, mejor utilizar el nombre “port”. Cuanto más explícito sea el código, más fácil será de leer y entender para el resto del mundo 😃
Introducción
Cómo aprender Go avanzado: concurrencia, patrones de diseño y net
Concurrencia
Race condition: el problema de depositar y retirar
Sync Mutex: Lock y Unlock
Mutex de lectura y escritura
Sistema de caché sin concurrencia
Sistema de caché con concurrencia
Reutilización de computación intensiva
Patrones de diseño
¿Qué son los patrones de diseño?
Factory
Singleton
Adapter
Observer
Strategy
Net
Escaneador de puertos sin concurrencia
Escaneador de puertos con concurrencia
Netcat
Servidor de chat en Go con net
Terminando el chat
Conclusión
Resumen del curso de Go avanzado
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 2
Preguntas 0
Una recomendación para la vida real, no utilicéis como nombre de variable “i” cuando se hace referencia a puerto, mejor utilizar el nombre “port”. Cuanto más explícito sea el código, más fácil será de leer y entender para el resto del mundo 😃
package main
import (
"fmt"
"net"
)
func main() {
// Escanear cada puerto y hacer una conexión
for i := 0; i < 100; i++ {
conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", "scanme.nmap.org", i))
if err != nil {
continue
}
conn.Close()
fmt.Println("Port", i, "is open")
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.