github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/src/BlackHatGo/Chap02/tcp-sync-scanner/tcp-sync-scanner.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net" 6 "sync" 7 ) 8 9 func worker(ports chan int, wg * sync.WaitGroup) { 10 for p := range ports { 11 fmt.Println(p) 12 } 13 } 14 15 func main() { 16 ports := make(chan int, 100) 17 var wg sync.WaitGroup 18 19 for i := 0; i < cap(ports); i++ { 20 go worker(ports, &wg) 21 } 22 23 for i := 1; i <= 1024; i++ { 24 wg.Add(1) 25 ports <- i 26 } 27 28 wg.Wait() 29 close(ports) 30 }