add
This commit is contained in:
parent
1ec83ad73d
commit
a442584b89
@ -9,7 +9,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewClient(addr string, server string, target string, timeout int, sproto int, rproto int, hb int) (*Client, error) {
|
func NewClient(addr string, server string, target string, timeout int, sproto int, rproto int) (*Client, error) {
|
||||||
|
|
||||||
ipaddr, err := net.ResolveUDPAddr("udp", addr)
|
ipaddr, err := net.ResolveUDPAddr("udp", addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -32,7 +32,6 @@ func NewClient(addr string, server string, target string, timeout int, sproto in
|
|||||||
timeout: timeout,
|
timeout: timeout,
|
||||||
sproto: sproto,
|
sproto: sproto,
|
||||||
rproto: rproto,
|
rproto: rproto,
|
||||||
hb: hb,
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +42,6 @@ type Client struct {
|
|||||||
timeout int
|
timeout int
|
||||||
sproto int
|
sproto int
|
||||||
rproto int
|
rproto int
|
||||||
hb int
|
|
||||||
|
|
||||||
ipaddr *net.UDPAddr
|
ipaddr *net.UDPAddr
|
||||||
addr string
|
addr string
|
||||||
@ -237,7 +235,7 @@ func (p *Client) checkTimeoutConn() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *Client) ping() {
|
func (p *Client) ping() {
|
||||||
if p.sendPacket == 0 && p.recvPacket == 0 {
|
if p.sendPacket == 0 {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
b, _ := now.MarshalBinary()
|
b, _ := now.MarshalBinary()
|
||||||
sendICMP(p.id, p.sequence, *p.conn, p.ipaddrServer, p.targetAddr, "", (uint32)(PING), b, p.sproto, p.rproto)
|
sendICMP(p.id, p.sequence, *p.conn, p.ipaddrServer, p.targetAddr, "", (uint32)(PING), b, p.sproto, p.rproto)
|
||||||
|
@ -36,8 +36,6 @@ Usage:
|
|||||||
|
|
||||||
-rproto 客户端接收ping协议的协议,默认是0
|
-rproto 客户端接收ping协议的协议,默认是0
|
||||||
The protocol that the client receives the ping. The default is 0.
|
The protocol that the client receives the ping. The default is 0.
|
||||||
|
|
||||||
-hb 客户端自动保持每秒发到服务器的心跳包,用于在某些网络下更新服务器的id和seq,以接收到服务器的reply,默认0关闭
|
|
||||||
`
|
`
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -49,7 +47,6 @@ func main() {
|
|||||||
timeout := flag.Int("timeout", 60, "conn timeout")
|
timeout := flag.Int("timeout", 60, "conn timeout")
|
||||||
sproto := flag.Int("sproto", 8, "send ping proto")
|
sproto := flag.Int("sproto", 8, "send ping proto")
|
||||||
rproto := flag.Int("rproto", 0, "recv ping proto")
|
rproto := flag.Int("rproto", 0, "recv ping proto")
|
||||||
hb := flag.Int("hb", 0, "client heartbeat")
|
|
||||||
flag.Usage = func() {
|
flag.Usage = func() {
|
||||||
fmt.Printf(usage)
|
fmt.Printf(usage)
|
||||||
}
|
}
|
||||||
@ -79,7 +76,7 @@ func main() {
|
|||||||
fmt.Printf("server %s\n", *server)
|
fmt.Printf("server %s\n", *server)
|
||||||
fmt.Printf("target %s\n", *target)
|
fmt.Printf("target %s\n", *target)
|
||||||
|
|
||||||
c, err := pingtunnel.NewClient(*listen, *server, *target, *timeout, *sproto, *rproto, *hb)
|
c, err := pingtunnel.NewClient(*listen, *server, *target, *timeout, *sproto, *rproto)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("ERROR: %s\n", err.Error())
|
fmt.Printf("ERROR: %s\n", err.Error())
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user