Pārlūkot izejas kodu

change net addr to ip

Joyit 3 dienas atpakaļ
vecāks
revīzija
3fc29d202e
4 mainītis faili ar 29 papildinājumiem un 14 dzēšanām
  1. 17 2
      conn/conn.go
  2. 4 4
      conn/tcp2/tcp2.go
  3. 4 4
      conn/ws2/ws2.go
  4. 4 4
      line.go

+ 17 - 2
conn/conn.go

@@ -35,10 +35,25 @@ type Connect interface {
 	WriteResponse(id uint16, state uint8, data []byte) error
 	WritePing(id uint16) error
 	ReadMessage(deadline int) (msgType MsgType, id uint16, cmd string, state uint8, data []byte, err error)
-	RemoteAddr() net.Addr
-	LocalAddr() net.Addr
+	RemoteIP() net.IP
+	LocalIP() net.IP
 	Close() error
 }
 
 // 服务请求连接
 type ServerConnectFunc func(conn Connect)
+
+// addrToIP attempts to extract a net.IP from a net.Addr
+func AddrToIP(addr net.Addr) net.IP {
+	switch v := addr.(type) {
+	case *net.TCPAddr:
+		return v.IP
+	case *net.UDPAddr:
+		return v.IP
+	case *net.IPAddr:
+		return v.IP
+	default:
+		// Handle other potential net.Addr implementations or return nil
+		return nil
+	}
+}

+ 4 - 4
conn/tcp2/tcp2.go

@@ -534,13 +534,13 @@ func (c *Tcp2) ReadMessage(deadline int) (msgType conn.MsgType, id uint16, cmd s
 }
 
 // 获取远程的地址
-func (c *Tcp2) RemoteAddr() net.Addr {
-	return c.conn.RemoteAddr()
+func (c *Tcp2) RemoteIP() net.IP {
+	return conn.AddrToIP(c.conn.RemoteAddr())
 }
 
 // 获取本地的地址
-func (c *Tcp2) LocalAddr() net.Addr {
-	return c.conn.LocalAddr()
+func (c *Tcp2) LocalIP() net.IP {
+	return conn.AddrToIP(c.conn.LocalAddr())
 }
 
 func (c *Tcp2) Close() error {

+ 4 - 4
conn/ws2/ws2.go

@@ -461,13 +461,13 @@ func (c *Ws2) ReadMessage(deadline int) (msgType conn.MsgType, id uint16, cmd st
 }
 
 // 获取远程的地址
-func (c *Ws2) RemoteAddr() net.Addr {
-	return c.conn.RemoteAddr()
+func (c *Ws2) RemoteIP() net.IP {
+	return conn.AddrToIP(c.conn.RemoteAddr())
 }
 
 // 获取本地的地址
-func (c *Ws2) LocalAddr() net.Addr {
-	return c.conn.LocalAddr()
+func (c *Ws2) LocalIP() net.IP {
+	return conn.AddrToIP(c.conn.LocalAddr())
 }
 
 func (c *Ws2) Close() error {

+ 4 - 4
line.go

@@ -104,18 +104,18 @@ func (c *Line) IsChannelEqual(channel string) bool {
 }
 
 // 获取远程的地址
-func (c *Line) RemoteAddr() net.Addr {
+func (c *Line) RemoteIP() net.IP {
 	if c.state == Connected {
-		return c.conn.RemoteAddr()
+		return c.conn.RemoteIP()
 	} else {
 		return nil
 	}
 }
 
 // 获取本地的地址
-func (c *Line) LocalAddr() net.Addr {
+func (c *Line) LocalIP() net.IP {
 	if c.state == Connected {
-		return c.conn.LocalAddr()
+		return c.conn.LocalIP()
 	} else {
 		return nil
 	}