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