结构体
struct AddressFamily
public struct AddressFamily <: ToString & Equatable<AddressFamily> {
public static const INET: AddressFamily
public static const INET6: AddressFamily
public static const NETLINK: AddressFamily
public static const UNIX: AddressFamily
public static const UNSPEC: AddressFamily
public let name: String
public let value: Int32
}
功能:AddressFamily 地址族用于指示 Socket
的寻址方案,常用的有 INET
/ INET6
/ UNIX
地址族。地址族标识符最初在 RFC 2453 中定义。
父类型:
static const INET
public static const INET: AddressFamily
功能:IPv4 地址族。
static const INET6
public static const INET6: AddressFamily
功能:IPv6 地址族。
static const NETLINK
public static const NETLINK: AddressFamily
功能:NetLink 地址族,仅 Linux 下支持。
static const UNIX
public static const UNIX: AddressFamily
功能:unix domain socket 地址族。
static const UNSPEC
public static const UNSPEC: AddressFamily
功能:未指定的地址族。
let name: String
public let name: String
功能:地址族名。
类型:String
let value: Int32
public let value: Int32
功能:地址族值。
类型:Int32
const init(String, Int32)
public const init(name: String, value: Int32)
功能:常量构造函数,创建 AddressFamily 对象。
参数:
func toString()
public func toString(): String
功能:获取地址族对应的名称。
返回值:
- String - 当前地址族的名称。
operator func ==(AddressFamily)
public operator func ==(rhs: AddressFamily): Bool
功能:比较地址族值是否相等。
参数:
- rhs: AddressFamily - 参与比较的 AddressFamily 对象。
返回值:
- Bool - 如果两个 AddressFamily 对象相等,则返回
true
;否则,返回false
。
operator func !=(AddressFamily)
public operator func !=(rhs: AddressFamily): Bool
功能:比较地址族值是否不等。
参数:
- rhs: AddressFamily - 参与比较的 AddressFamily 对象。
返回值:
- Bool - 如果两个 AddressFamily 对象不等,则返回
true
;否则,返回false
。
struct OptionLevel
public struct OptionLevel {
public static const ICMP: Int32
public static const IP: Int32
public static const RAW: Int32
public static const SOCKET: Int32
public static const TCP: Int32
public static const UDP: Int32
}
功能:提供了常用的套接字选项级别。
static const ICMP
public static const ICMP: Int32
功能:控制 ICMP
协议行为的套接字选项级别。
类型:Int32
static const IP
public static const IP: Int32
功能:控制 IP 协议行为的套接字选项级别。
类型:Int32
static const RAW
public static const RAW: Int32
功能:控制 RAW
协议行为的套接字选项级别。
类型:Int32
static const SOCKET
public static const SOCKET: Int32
功能:控制基本套接字行为的套接字选项级别。
类型:Int32
static const TCP
public static const TCP: Int32
功能:控制 TCP
协议行为的套接字选项级别。
类型:Int32
static const UDP
public static const UDP: Int32
功能:控制 UDP
协议行为的套接字选项级别。
类型:Int32
struct OptionName
public struct OptionName {
public static const IP_HDRINCL: Int32
public static const IP_TOS: Int32
public static const IP_TTL: Int32
public static const SO_ACCEPTCONN: Int32
public static const SO_BROADCAST: Int32
public static const SO_DEBUG: Int32
public static const SO_DONTROUTE: Int32
public static const SO_ERROR: Int32
public static const SO_KEEPALIVE: Int32
public static const SO_LINGER: Int32
public static const SO_OOBINLINE: Int32
public static const SO_RCVBUF: Int32
public static const SO_RCVTIMEO: Int32
public static const SO_REUSEADDR: Int32
public static const SO_SNDBUF: Int32
public static const SO_SNDTIMEO: Int32
public static const TCP_KEEPCNT: Int32
public static const TCP_KEEPIDLE: Int32
public static const TCP_KEEPINTVL: Int32
public static const TCP_NODELAY: Int32
}
功能:提供了常用的套接字选项。
static const IP_HDRINCL
public static const IP_HDRINCL: Int32
功能:用于在发送数据包时指定 IP 头部是否由应用程序提供的套接字选项。
类型:Int32
static const IP_TOS
public static const IP_TOS: Int32
功能:用于指定数据包服务类型和优先级的套接字选项。
类型:Int32
static const IP_TTL
public static const IP_TTL: Int32
功能:用于限制IP数据包在网络中传输最大跳数的套接字选项。
类型:Int32
static const SO_ACCEPTCONN
public static const SO_ACCEPTCONN: Int32
功能:用于查询套接字是否处于监听状态的套接字选项。
类型:Int32
static const SO_BROADCAST
public static const SO_BROADCAST: Int32
功能:用于设置套接字是否允许发送广播消息的套接字选项。
类型:Int32
static const SO_DEBUG
public static const SO_DEBUG: Int32
功能:用于启用或禁用调试模式的套接字选项。
类型:Int32
static const SO_DONTROUTE
public static const SO_DONTROUTE: Int32
功能:用于在连接套接字时,不路由套接字数据包的套接字选项。
类型:Int32
static const SO_ERROR
public static const SO_ERROR: Int32
功能:获取和清除套接字上错误状态的套接字选项。
类型:Int32
static const SO_KEEPALIVE
public static const SO_KEEPALIVE: Int32
功能:用于检测 TCP
连接是否仍然处于活动状态的套接字选项。
类型:Int32
static const SO_LINGER
public static const SO_LINGER: Int32
功能:用于设置套接字关闭时行为的套接字选项。
类型:Int32
static const SO_OOBINLINE
public static const SO_OOBINLINE: Int32
功能:用于控制接收带外数据方式的套接字选项。
类型:Int32
static const SO_RCVBUF
public static const SO_RCVBUF: Int32
功能:用于设置套接字接收缓冲区大小的套接字选项。
类型:Int32
static const SO_RCVTIMEO
public static const SO_RCVTIMEO: Int32
功能:用于设置套接字接收数据超时时间的套接字选项。
类型:Int32
static const SO_REUSEADDR
public static const SO_REUSEADDR: Int32
功能:用于在套接字关闭后立即释放其绑定端口,以便其他套接字可以立即绑定该端口的套接字选项。
类型:Int32
static const SO_SNDBUF
public static const SO_SNDBUF: Int32
功能:用于设置套接字发送缓冲区大小的套接字选项。
类型:Int32
static const SO_SNDTIMEO
public static const SO_SNDTIMEO: Int32
功能:用于设置套接字发送数据超时时间的套接字选项。
类型:Int32
static const TCP_KEEPCNT
public static const TCP_KEEPCNT: Int32
功能:用于控制 TCP 连接中发送保持存活探测报文次数的套接字选项。
类型:Int32
static const TCP_KEEPIDLE
public static const TCP_KEEPIDLE: Int32
功能:用于设置在没有收到对端确认的情况下,TCP
保持连接最大次数的套接字选项。
类型:Int32
static const TCP_KEEPINTVL
public static const TCP_KEEPINTVL: Int32
功能:用于设置 TCP
保持连接时发送探测报文时间间隔的套接字选项。
类型:Int32
static const TCP_NODELAY
public static const TCP_NODELAY: Int32
功能:用于控制 TCP
协议延迟行为的套接字选项。
类型:Int32
struct ProtocolType
public struct ProtocolType <: Equatable<ProtocolType> & ToString & Hashable {
public static let ICMP: ProtocolType
public static let IPV4: ProtocolType
public static let IPV6: ProtocolType
public static let RAW: ProtocolType
public static let TCP: ProtocolType
public static let UDP: ProtocolType
public static let Unspecified: ProtocolType
public init(protocol: Int32)
}
功能:提供了常用的套接字协议,以及通过指定 Int32 值来构建套接字协议的功能。
父类型:
static let ICMP
public static let ICMP: ProtocolType
功能:指定协议类型为 ICMP
。
类型:ProtocolType
static let IPV4
public static let IPV4: ProtocolType
功能:指定协议类型为 IPv4
。
类型:ProtocolType
static let IPV6
public static let IPV6: ProtocolType
功能:指定协议类型为 IPv6
。
类型:ProtocolType
static let RAW
public static let RAW: ProtocolType
功能:指定协议类型为 RAW
。
类型:ProtocolType
static let TCP
public static let TCP: ProtocolType
功能:指定协议类型为 TCP
。
类型:ProtocolType
static let UDP
public static let UDP: ProtocolType
功能:指定协议类型为 UDP
。
类型:ProtocolType
static let Unspecified
public static let Unspecified: ProtocolType
功能:不指定协议类型。
类型:ProtocolType
init(Int32)
public init(protocol: Int32)
功能:通过指定套接字协议值创建协议。
参数:
- protocol: Int32 - 套接字协议值。
func hashCode()
public func hashCode(): Int64
功能:返回当前 ProtocolType 实例的哈希值。
返回值:
- Int64 - 当前 ProtocolType 实例的哈希值。
func toString()
public func toString(): String
功能:返回当前 ProtocolType 实例的字符串表示。
返回值:
- String - 当前 ProtocolType 实例的字符串表示。
operator func !=(ProtocolType)
public operator func !=(r: ProtocolType): Bool
功能:判断两个 ProtocolType 实例是否不等。
参数:
- r: ProtocolType - 参与比较的 ProtocolType 实例。
返回值:
operator func ==(ProtocolType)
public operator func ==(r: ProtocolType): Bool
功能:判断两个 ProtocolType 实例是否相等。
参数:
- r: ProtocolType - 参与比较的 ProtocolType 实例。
返回值:
struct RawAddress
public struct RawAddress {
public init(addr: Array<Byte>)
}
功能:提供了 RawSocket 的通信地址创建和获取功能。
prop addr
public prop addr: Array<Byte>
功能:获取地址。
init(Array<Byte>)
public init(addr: Array<Byte>)
功能:根据字节数组创建地址。
参数:
struct SocketDomain
public struct SocketDomain <: Equatable<SocketDomain> & ToString & Hashable {
public static let IPV4: SocketDomain
public static let IPV6: SocketDomain
public static let NETLINK: SocketDomain
public static let PACKET: SocketDomain
public static let UNIX: SocketDomain
public init(domain: Int32)
}
功能:提供了常用的套接字通信域,以及通过指定 Int32 值来构建套接字通信域的功能。
父类型:
static let IPV4
public static let IPV4: SocketDomain
功能:IPv4
通信域。
类型:SocketDomain
static let IPV6
public static let IPV6: SocketDomain
功能:IPv6
通信域。
类型:SocketDomain
static let NETLINK
public static let NETLINK: SocketDomain
功能:内核和用户空间进程之间通信。
注意:
- 该常量在 Windows 平台不提供。
类型:SocketDomain
static let PACKET
public static let PACKET: SocketDomain
功能:允许用户空间程序直接访问网络数据包。
注意:
- 该常量在 Windows 平台不提供。
类型:SocketDomain
static let UNIX
public static let UNIX: SocketDomain
功能:本机通信。
类型:SocketDomain
init(Int32)
public init(domain: Int32)
功能:根据指定通信域值创建套接字通信域。
参数:
- domain: Int32 - 通信域值。
func hashCode()
public func hashCode(): Int64
功能:返回当前 SocketDomain 实例的哈希值。
返回值:
- Int64 - 当前 SocketDomain 实例的哈希值。
func toString()
public func toString(): String
功能:返回当前 SocketDomain 实例的字符串表示。
返回值:
- String - 当前 SocketDomain 实例的字符串表示。
operator func !=(SocketDomain)
public operator func !=(r: SocketDomain): Bool
功能:比较两个 SocketDomain 实例是否不等。
参数:
- r: SocketDomain - 参与比较的 SocketDomain 实例。
返回值:
operator func ==(SocketDomain)
public operator func ==(r: SocketDomain): Bool
功能:比较两个 SocketDomain 实例是否相等。
参数:
- r: SocketDomain - 参与比较的 SocketDomain 实例。
返回值:
struct SocketKeepAliveConfig
public struct SocketKeepAliveConfig <: ToString & Equatable<SocketKeepAliveConfig> {
public let count: UInt32
public let idle: Duration
public let interval: Duration
public init(idle!: Duration = Duration.second * 45, interval!: Duration = Duration.second * 5, count!: UInt32 = 5)
}
功能:TCP KeepAlive 属性配置。
父类型:
let count
public let count: UInt32
功能:查询连接是否失效的报文个数。
类型:UInt32
let idle
public let idle: Duration
功能:允许连接空闲的时长,空闲超长将关闭连接。
类型:Duration
let interval
public let interval: Duration
功能:保活报文发送周期。
类型:Duration
init(Duration, Duration, UInt32)
public init(idle!: Duration = Duration.second * 45, interval!: Duration = Duration.second * 5, count!: UInt32 = 5)
功能:初始化 SocketKeepAliveConfig 实例对象。
参数:
- idle!: Duration - 允许空闲的时长,默认 45 秒。
- interval!: Duration - 保活报文发送周期,默认 45 秒。
- count!: UInt32 - 查询连接是否失效的报文个数, 默认 5 个。
异常:
- IllegalArgumentException - 当配置为空闲状态或设置间隔小于 0 时,抛出异常。
func toString()
public override func toString(): String
功能:将 TCP KeepAlive 属性配置转换为字符串。
返回值:
- String - 转换后的字符串。
operator func !=(SocketKeepAliveConfig)
public override operator func !=(other: SocketKeepAliveConfig): Bool
功能:判断两个 SocketKeepAliveConfig 实例是否不等。
参数:
- other: SocketKeepAliveConfig - 参与比较的 SocketKeepAliveConfig 实例。
返回值:
- Bool - 如果不等,则返回
true
;否则,返回false
。
operator func ==(SocketKeepAliveConfig)
public override operator func ==(other: SocketKeepAliveConfig): Bool
功能:判断两个 SocketKeepAliveConfig 实例是否相等。
参数:
- other: SocketKeepAliveConfig - 参与比较的 SocketKeepAliveConfig 实例。
返回值:
- Bool - 如果相等,则返回
true
;否则,返回false
。
struct SocketOptions
public struct SocketOptions {
public static const IPPROTO_TCP
public static const IPPROTO_UDP
public static const SOL_SOCKET
public static const SO_BINDTODEVICE
public static const SO_KEEPALIVE
public static const SO_LINGER
public static const SO_RCVBUF
public static const SO_REUSEADDR
public static const SO_REUSEPORT
public static const SO_SNDBUF
public static const TCP_NODELAY
public static const TCP_QUICKACK
}
功能:SocketOptions 存储了设置套接字选项的一些参数常量方便后续调用。
const IPPROTO_TCP
public static const IPPROTO_TCP: Int32 = IPPROTO_TCP
功能:常数,用于将套接字选项的 level
层级设为 IPPROTO_TCP
。
类型:Int32
const IPPROTO_UDP
public static const IPPROTO_UDP: Int32 = IPPROTO_UDP
功能:常数,用于将套接字选项的 level
层级设为 IPPROTO_UDP
。
类型:Int32
const SOL_SOCKET
public static const SOL_SOCKET: Int32 = SOL_SOCKET
功能:常数,用于将套接字选项的 level
层级设为 SOL_SOCKET
。
类型:Int32
const SO_BINDTODEVICE
public static const SO_BINDTODEVICE: Int32 = SOCK_BINDTODEVICE
功能:常数,用于将套接字选项的 optname
设为 SO_BINDTODEVICE
。
类型:Int32
const SO_KEEPALIVE
public static const SO_KEEPALIVE: Int32 = SOCK_KEEPALIVE
功能:常数,用于将套接字选项的 optname
设为 SO_KEEPALIVE
。
类型:Int32
const SO_LINGER
public static const SO_LINGER: Int32 = SOCK_LINGER
功能:常数,用于将套接字选项的 optname
设为 SO_LINGER
。
类型:Int32
const SO_RCVBUF
public static const SO_RCVBUF: Int32 = SOCK_RCVBUF
功能:常数,用于将套接字选项的 optname
设为 SO_RCVBUF
。
类型:Int32
const SO_REUSEADDR
public static const SO_REUSEADDR: Int32 = SOCK_REUSEADDR
功能:常数,用于将套接字选项的 optname
设为 SO_REUSEADDR
。
类型:Int32
const SO_REUSEPORT
public static const SO_REUSEPORT: Int32 = SOCK_REUSEPORT
功能:常数,用于将套接字选项的 optname
设为 SO_REUSEPORT
。
类型:Int32
const SO_SNDBUF
public static const SO_SNDBUF: Int32 = SOCK_SNDBUF
功能:常数,用于将套接字选项的 optname
设为 SO_SNDBUF
。
类型:Int32
const TCP_NODELAY
public static const TCP_NODELAY: Int32 = SOCK_TCP_NODELAY
功能:常数,用于将套接字选项的 optname
设为 TCP_NODELAY
。
类型:Int32
const TCP_QUICKACK
public static const TCP_QUICKACK: Int32 = SOCK_TCP_QUICKACK
功能:常数,用于将套接字选项的 optname
设为 TCP_QUICKACK
。
类型:Int32
struct SocketType
public struct SocketType <: Equatable<SocketType> & ToString & Hashable {
public static let DATAGRAM: SocketType
public static let RAW: SocketType
public static let SEQPACKET: SocketType
public static let STREAM: SocketType
public init(`type`: Int32)
}
功能:提供了常用的套接字类型,以及通过指定 Int32 值来构建套接字类型的功能。
父类型:
static let DATAGRAM
public static let DATAGRAM: SocketType
功能:数据报套接字类型。
类型:SocketType
static let RAW
public static let RAW: SocketType
功能:原始套接字类型。
类型:SocketType
static let SEQPACKET
public static let SEQPACKET: SocketType
功能:有序数据包套接字类型。
类型:SocketType
static let STREAM
public static let STREAM: SocketType
功能:流式套接字类型。
类型:SocketType
init(Int32)
public init(`type`: Int32)
功能:通过指定套接字类型值创建套接字类型。
参数:
- `type`: Int32 - 套接字类型值。
func hashCode()
public func hashCode(): Int64
功能:返回当前 SocketType 实例的哈希值。
返回值:
- Int64 - 当前 SocketType 实例的哈希值。
func toString()
public func toString(): String
功能:返回当前 SocketType 实例的字符串表示。
返回值:
- String - 当前 SocketType 实例的字符串表示。
operator func !=(SocketType)
public operator func !=(r: SocketType): Bool
功能:判断两个 SocketType 实例是否不等。
参数:
- r: SocketType - 参与比较的 SocketType 实例。
返回值:
operator func ==(SocketType)
public operator func ==(r: SocketType): Bool
功能:判断两个 SocketType 实例是否相等。
参数:
- r: SocketType - 参与比较的 SocketType 实例。
返回值: