From a454332128dff4cd744ccf98f84dce556c59fb06 Mon Sep 17 00:00:00 2001 From: e1732a364fed <75717694+e1732a364fed@users.noreply.github.com> Date: Sat, 1 Jan 2000 00:00:00 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8A=E4=B8=80=E4=B8=AAco?= =?UTF-8?q?mmit=E7=9A=84=E9=94=99=E8=AF=AF=EF=BC=9B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netLayer/dial.go | 1 + netLayer/listen.go | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/netLayer/dial.go b/netLayer/dial.go index 47af47b..5d351bf 100644 --- a/netLayer/dial.go +++ b/netLayer/dial.go @@ -8,6 +8,7 @@ import ( ) var ( + //你可以通过向这个map插入 自定义函数的方式 来拓展 vs的 拨号功能, 可以拨号 其它 net包无法拨号的 network CustomDialerMap = make(map[string]func(address string, timeout time.Duration) (net.Conn, error)) ) diff --git a/netLayer/listen.go b/netLayer/listen.go index 559ea8a..b9e66aa 100644 --- a/netLayer/listen.go +++ b/netLayer/listen.go @@ -14,6 +14,7 @@ import ( ) var ( + //你可以通过向这个map插入 自定义函数的方式 来拓展 vs的 监听功能, 可以监听 其它 net包无法监听的 network CustomListenerMap = make(map[string]func(address string) (net.Listener, error)) ) @@ -153,11 +154,17 @@ func ListenAndAccept(network, addr string, sockopt *Sockopt, xver int, acceptFun if len(CustomListenerMap) > 0 { if f := CustomListenerMap[network]; f != nil { - return f(addr) + listener, err = f(addr) + if err != nil { + return + } } } - listener, err = net.Listen(network, addr) + if listener == nil { + listener, err = net.Listen(network, addr) + } + if err != nil { return }