dialer.go 716 B

1234567891011121314151617181920212223242526272829
  1. package kcp
  2. import (
  3. "math/rand"
  4. "net"
  5. "github.com/v2ray/v2ray-core/common/log"
  6. v2net "github.com/v2ray/v2ray-core/common/net"
  7. "github.com/v2ray/v2ray-core/transport/internet"
  8. )
  9. func DialKCP(src v2net.Address, dest v2net.Destination) (internet.Connection, error) {
  10. udpDest := v2net.UDPDestination(dest.Address(), dest.Port())
  11. log.Info("Dialling KCP to ", udpDest)
  12. conn, err := internet.DialToDest(src, udpDest)
  13. if err != nil {
  14. return nil, err
  15. }
  16. cpip := NewSimpleAuthenticator()
  17. session := NewConnection(rand.Uint32(), conn, conn.LocalAddr().(*net.UDPAddr), conn.RemoteAddr().(*net.UDPAddr), cpip)
  18. session.FetchInputFrom(conn)
  19. return session, nil
  20. }
  21. func init() {
  22. internet.KCPDialer = DialKCP
  23. }