add
This commit is contained in:
parent
d9579c3c48
commit
5ed93bee2b
20
client.go
20
client.go
@ -49,6 +49,11 @@ type Client struct {
|
|||||||
|
|
||||||
localAddrToConnMap map[string]*ClientConn
|
localAddrToConnMap map[string]*ClientConn
|
||||||
localIdToConnMap map[string]*ClientConn
|
localIdToConnMap map[string]*ClientConn
|
||||||
|
|
||||||
|
sendPacket uint64
|
||||||
|
recvPacket uint64
|
||||||
|
sendPacketSize uint64
|
||||||
|
recvPacketSize uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type ClientConn struct {
|
type ClientConn struct {
|
||||||
@ -112,6 +117,7 @@ func (p *Client) Run() {
|
|||||||
case <-interval.C:
|
case <-interval.C:
|
||||||
p.checkTimeoutConn()
|
p.checkTimeoutConn()
|
||||||
p.ping()
|
p.ping()
|
||||||
|
p.showNet()
|
||||||
case r := <-recv:
|
case r := <-recv:
|
||||||
p.processPacket(r)
|
p.processPacket(r)
|
||||||
}
|
}
|
||||||
@ -151,6 +157,9 @@ func (p *Client) Accept() error {
|
|||||||
|
|
||||||
clientConn.activeTime = now
|
clientConn.activeTime = now
|
||||||
sendICMP(*p.conn, p.ipaddrServer, p.targetAddr, clientConn.id, (uint32)(DATA), bytes[:n], p.sproto, p.rproto)
|
sendICMP(*p.conn, p.ipaddrServer, p.targetAddr, clientConn.id, (uint32)(DATA), bytes[:n], p.sproto, p.rproto)
|
||||||
|
|
||||||
|
p.sendPacket++
|
||||||
|
p.sendPacketSize += (uint64)(n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,6 +193,9 @@ func (p *Client) processPacket(packet *Packet) {
|
|||||||
clientConn.close = true
|
clientConn.close = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p.recvPacket++
|
||||||
|
p.recvPacketSize += (uint64)(len(packet.data))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Client) Close(clientConn *ClientConn) {
|
func (p *Client) Close(clientConn *ClientConn) {
|
||||||
@ -216,3 +228,11 @@ func (p *Client) ping() {
|
|||||||
sendICMP(*p.conn, p.ipaddrServer, p.targetAddr, "", (uint32)(PING), b, p.sproto, p.rproto)
|
sendICMP(*p.conn, p.ipaddrServer, p.targetAddr, "", (uint32)(PING), b, p.sproto, p.rproto)
|
||||||
fmt.Printf("ping %s %s %d %d\n", p.addrServer, now.String(), p.sproto, p.rproto)
|
fmt.Printf("ping %s %s %d %d\n", p.addrServer, now.String(), p.sproto, p.rproto)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Client) showNet() {
|
||||||
|
fmt.Printf("send %d/s %dKB/s recv %d/s %dKB/s\n", p.sendPacket, p.sendPacket/1024, p.recvPacket, p.recvPacket/1024)
|
||||||
|
p.sendPacket = 0
|
||||||
|
p.recvPacket = 0
|
||||||
|
p.sendPacketSize = 0
|
||||||
|
p.recvPacketSize = 0
|
||||||
|
}
|
||||||
|
20
server.go
20
server.go
@ -19,6 +19,11 @@ type Server struct {
|
|||||||
conn *icmp.PacketConn
|
conn *icmp.PacketConn
|
||||||
|
|
||||||
localConnMap map[string]*ServerConn
|
localConnMap map[string]*ServerConn
|
||||||
|
|
||||||
|
sendPacket uint64
|
||||||
|
recvPacket uint64
|
||||||
|
sendPacketSize uint64
|
||||||
|
recvPacketSize uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServerConn struct {
|
type ServerConn struct {
|
||||||
@ -51,6 +56,7 @@ func (p *Server) Run() {
|
|||||||
select {
|
select {
|
||||||
case <-interval.C:
|
case <-interval.C:
|
||||||
p.checkTimeoutConn()
|
p.checkTimeoutConn()
|
||||||
|
p.showNet()
|
||||||
case r := <-recv:
|
case r := <-recv:
|
||||||
p.processPacket(r)
|
p.processPacket(r)
|
||||||
}
|
}
|
||||||
@ -100,6 +106,9 @@ func (p *Server) processPacket(packet *Packet) {
|
|||||||
udpConn.close = true
|
udpConn.close = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p.recvPacket++
|
||||||
|
p.recvPacketSize += (uint64)(len(packet.data))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Server) Recv(conn *ServerConn, id string, src *net.IPAddr) {
|
func (p *Server) Recv(conn *ServerConn, id string, src *net.IPAddr) {
|
||||||
@ -128,6 +137,9 @@ func (p *Server) Recv(conn *ServerConn, id string, src *net.IPAddr) {
|
|||||||
conn.activeTime = now
|
conn.activeTime = now
|
||||||
|
|
||||||
sendICMP(*p.conn, src, "", id, (uint32)(DATA), bytes[:n], conn.rproto, 0)
|
sendICMP(*p.conn, src, "", id, (uint32)(DATA), bytes[:n], conn.rproto, 0)
|
||||||
|
|
||||||
|
p.sendPacket++
|
||||||
|
p.sendPacketSize += (uint64)(n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,3 +167,11 @@ func (p *Server) checkTimeoutConn() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Server) showNet() {
|
||||||
|
fmt.Printf("send %d/s %dKB/s recv %d/s %dKB/s\n", p.sendPacket, p.sendPacket/1024, p.recvPacket, p.recvPacket/1024)
|
||||||
|
p.sendPacket = 0
|
||||||
|
p.recvPacket = 0
|
||||||
|
p.sendPacketSize = 0
|
||||||
|
p.recvPacketSize = 0
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user