33 lines
595 B
Go
33 lines
595 B
Go
package stage1
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
"net/netip"
|
|
"runtime/debug"
|
|
)
|
|
|
|
func RunClient(serverAddrStr string) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
fmt.Printf("%v", r)
|
|
debug.PrintStack()
|
|
}
|
|
}()
|
|
|
|
iface, err := openInterface(network, clientIP, netName)
|
|
must(err)
|
|
|
|
myAddr, err := net.ResolveUDPAddr("udp", fmt.Sprintf(":%d", port))
|
|
must(err)
|
|
|
|
conn, err := net.ListenUDP("udp", myAddr)
|
|
must(err)
|
|
|
|
serverAddr, err := netip.ParseAddrPort(fmt.Sprintf("%s:%d", serverAddrStr, port))
|
|
must(err)
|
|
|
|
go readFromIFace(iface, conn, serverIP, serverAddr)
|
|
readFromConn(iface, conn)
|
|
}
|