diff --git a/transport/hub/kcp.go b/transport/hub/kcp.go index 8d0fc00aa..fa0aaf479 100644 --- a/transport/hub/kcp.go +++ b/transport/hub/kcp.go @@ -6,6 +6,7 @@ import ( "time" "github.com/v2ray/v2ray-core/common/log" + v2net "github.com/v2ray/v2ray-core/common/net" "github.com/v2ray/v2ray-core/transport" "github.com/v2ray/v2ray-core/transport/hub/kcpv" "github.com/xtaci/kcp-go" @@ -126,3 +127,12 @@ func DialKCP(dest v2net.Destination) (*KCPVconn, error) { } return kcvn, nil } + +func ListenKCP(address v2net.Address, port v2net.Port) (*KCPVlistener, error) { + kcpconf := transport.KcpConfig + cpip, _ := kcpv.GetChipher(kcpconf.Key) + laddr := address.String() + ":" + port.String() + kcl, err := kcp.ListenWithOptions(kcpconf.AdvancedConfigs.Fec, laddr, cpip) + kcvl := &KCPVlistener{lst: kcl, conf: kcpconf} + return kcvl, err +}