Add maid.go
This commit is contained in:
51
main.go
Normal file
51
main.go
Normal file
@@ -0,0 +1,51 @@
|
||||
// go build -ldflags "-s -w"
|
||||
// goudpserver -ip=0.0.0.0 -port=10003
|
||||
// ncat -u localhost 10003
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func lstn(connection *net.UDPConn, alarm chan struct{}) {
|
||||
buffer := make([]byte, 1024)
|
||||
n, remoteAddr, err := 0, new(net.UDPAddr), error(nil)
|
||||
for err == nil {
|
||||
n, remoteAddr, err = connection.ReadFromUDP(buffer)
|
||||
fmt.Println("from", remoteAddr, "-", buffer[:n])
|
||||
}
|
||||
|
||||
fmt.Println("Listener failed (", err, ")!")
|
||||
alarm <- struct{}{}
|
||||
}
|
||||
|
||||
func main() {
|
||||
argIP := flag.String("ip", "0.0.0.0", "Listen IP address")
|
||||
argPort := flag.Int("port", 10003, "Listen Port number")
|
||||
flag.Parse()
|
||||
|
||||
fmt.Println("IP Address: ", *argIP)
|
||||
fmt.Println("Port Number: ", *argPort)
|
||||
|
||||
addr := net.UDPAddr{
|
||||
Port: *argPort,
|
||||
// IP: net.IP{0, 0, 0, 0},
|
||||
IP: net.ParseIP(*argIP),
|
||||
}
|
||||
connection, err := net.ListenUDP("udp", &addr)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
alarm := make(chan struct{})
|
||||
fmt.Println("CPU Threads: ", runtime.NumCPU())
|
||||
for i := 0; i < runtime.NumCPU(); i++ {
|
||||
go lstn(connection, alarm)
|
||||
}
|
||||
|
||||
msg := <-alarm
|
||||
fmt.Println(msg)
|
||||
}
|
||||
Reference in New Issue
Block a user