mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-10-10 19:20:04 +08:00
34 lines
726 B
Go
34 lines
726 B
Go
package netLayer
|
||
|
||
const (
|
||
// Transport Layer Protocols, 使用uint16 mask,所以最多支持16种
|
||
|
||
TCP uint16 = 1 << iota
|
||
UDP
|
||
UNIX //unix domain socket
|
||
Raw_socket
|
||
KCP
|
||
Quic //quic是一个横跨多个层的协议,这里也算一个,毕竟与kcp类似
|
||
|
||
//一般而言,我们除了tcp和udp的协议只用于出口,不用于入口
|
||
//不过,如果是多级代理串联的话,也会碰到需要 kcp等流量作为入口等情况。
|
||
)
|
||
|
||
func StrToTransportProtocol(s string) uint16 {
|
||
switch s {
|
||
case "tcp", "tcp4", "tcp6":
|
||
return TCP
|
||
case "udp", "udp4", "udp6":
|
||
return UDP
|
||
case "unix":
|
||
return UNIX
|
||
case "raw":
|
||
return Raw_socket
|
||
case "kcp":
|
||
return KCP
|
||
case "quic":
|
||
return Quic
|
||
}
|
||
return 0
|
||
}
|