netKit

package
v2.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

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 *

  • 参考:"net"

Index

Constants

View Source
const (
	// MaxPort 65535 == 0xFFFF
	MaxPort = 0xFFFF
)

Variables

View Source
var (
	NoUsablePortError = errorKit.Simple("no usable port")
)

Functions

func CanDial

func CanDial(ip string, port int) (bool, error)

CanDial

判断指定ip和port能否连通.

PS: 超时时间(timeout)默认为300ms.

func CanDialWithTimeout

func CanDialWithTimeout(ip string, port int, timeout time.Duration) (bool, error)

CanDialWithTimeout

判断指定ip和port能否连通(在指定时限内).

func GetUsablePort

func GetUsablePort(startPort int, exceptivePorts ...int) (int, error)

GetUsablePort 从 传参startPort开始(包括)向后找,返回一个可用的端口,或者直至端口超过上限65535.

@param exceptivePorts 例外的端口(即返回的端口号不在exceptivePorts中)

func IsLocalPortUsable

func IsLocalPortUsable(port int) (bool, error)

IsLocalPortUsable 本地端口是否可用(即未被占用)? Deprecated: 某些绑定非127.0.0.1的端口无法被检测到.

PS: 会优先判断端口是否有效(valid).

参考: Java,hutool中的NetUtil.isUsableLocalPort() golang端口占用检测的使用 https://wenku.baidu.com/view/25716f5b01768e9951e79b89680203d8ce2f6af5.html

func IsValidPort

func IsValidPort(port int) bool

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

func JoinHostnameAndPort(hostname string, port int) string

func ProcessAddresses

func ProcessAddresses(addresses []string) ([]string, error)

ProcessAddresses

@return 如果第二个返回值为nil,那么 len(第一个返回值) > 0

Types

type Address

type Address struct {
	// Hostname 也可以是ip
	Hostname string
	Port     int
}

func ParseToAddress

func ParseToAddress(str string) (*Address, error)

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

func (*Address) String

func (addr *Address) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL