addr.go 546 B

123456789101112131415161718192021222324252627282930313233343536
  1. package net
  2. import (
  3. "net"
  4. )
  5. type CustomAddr interface {
  6. net.Addr
  7. RawAddr() net.Addr
  8. }
  9. type customAddr struct {
  10. networkStr string
  11. addrStr string
  12. rawAddr net.Addr
  13. }
  14. func (a customAddr) Network() string {
  15. return a.networkStr
  16. }
  17. func (a customAddr) String() string {
  18. return a.addrStr
  19. }
  20. func (a customAddr) RawAddr() net.Addr {
  21. return a.rawAddr
  22. }
  23. func NewCustomAddr(networkStr string, addrStr string, rawAddr net.Addr) CustomAddr {
  24. return customAddr{
  25. networkStr: networkStr,
  26. addrStr: addrStr,
  27. rawAddr: rawAddr,
  28. }
  29. }