-
Notifications
You must be signed in to change notification settings - Fork 2
/
client.go
46 lines (40 loc) · 1 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package main
import (
"github.com/civet148/gotools/log"
"github.com/civet148/gotools/wss"
_ "github.com/civet148/gotools/wss/udpsock" //required (register socket instance)
"time"
)
const (
UDP_CLIENT_URL = "udp://127.0.0.1:6664"
UDP_SERVER_ADDR = "udp://127.0.0.1:6665"
)
func main() {
client(UDP_CLIENT_URL)
}
const (
UDP_DATA_PING = "ping"
UDP_DATA_PONG = "pong"
)
func client(strUrl string) (err error) {
c := wss.NewClient()
if err = c.Listen(strUrl); err != nil {
log.Errorf(err.Error())
return
}
for {
log.Debugf("local address [%v] remote address [%v]", c.GetLocalAddr(), c.GetRemoteAddr())
if _, err := c.Send([]byte(UDP_DATA_PING), UDP_SERVER_ADDR); err != nil {
log.Errorf(err.Error())
break
}
if data, from, err := c.Recv(-1); err != nil {
log.Error(err.Error())
break
} else {
log.Infof("udp client received data [%s] length [%v] from [%v]", string(data), len(data), from)
}
time.Sleep(3 * time.Second)
}
return
}