Documentation ¶
Overview ¶
Package netKit
PS: Golang对于host的定义 不同于 js.
e.g. "127.0.0.1:8888" host in Golang: "127.0.0.1" host in js: "127.0.0.1:8888"
Package netKit
Index ¶
- Constants
- Variables
- func AssertValidPort(port int) error
- func CanDial(addr string, timeout time.Duration) error
- func IsLocalPortAvailable(port int) bool
- func IsValidPort(port int) bool
- func JoinHostnameAndPort(hostname string, port int) string
- func ProcessAddresses(addresses []string) ([]string, error)
- type Address
Constants ¶
const (
// MaxPort 65535 == 0xFFFF
MaxPort = 0xFFFF
)
Variables ¶
var (
DialTimeout func(network, address string, timeout time.Duration) (net.Conn, error) = net.DialTimeout
)
var (
NoUsablePortError = errorKit.New("no usable port")
)
Functions ¶
func AssertValidPort ¶ added in v2.1.18
func IsLocalPortAvailable ¶ added in v2.1.18
IsLocalPortAvailable 本地端口是否可用(即未被占用)? Deprecated: 某些绑定非127.0.0.1的端口无法被检测到.
PS: 会优先判断端口是否有效(valid).
参考: Java,hutool中的NetUtil.isUsableLocalPort() golang端口占用检测的使用 https://wenku.baidu.com/view/25716f5b01768e9951e79b89680203d8ce2f6af5.html
func IsValidPort ¶
IsValidPort 是否为有效的端口?(根据值范围判断)
参考: Java,hutool中的NetUtil.isValidPort() Linux端口分配: https://blog.csdn.net/zh2508/article/details/104888743
0 不使用 1–1023 系统保留,只能由root用户使用 1024—4999 由客户端程序自由分配 5000—65535 由服务器端程序自由分配(65535 = 2 ^ 16 - 1)
func JoinHostnameAndPort ¶
Types ¶
type Address ¶
type Address struct { // Hostname 也可以是ip Hostname string `json:"hostname" yaml:"hostname"` Port int `json:"port" yaml:"port"` }
func ParseToAddress ¶
ParseToAddress
e.g. ("https://127.0.0.1") => "127.0.0.1:443", nil ("http://127.0.0.1:8888") => "127.0.0.1:8888", nil ("https://blog.csdn.net/weixin_52428496/article/details/110159938") => "blog.csdn.net:443", nil