结构体

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 实例的哈希值。

返回值:

func toString()

public func toString(): String

功能:返回当前 ProtocolType 实例的字符串表示。

返回值:

operator func !=(ProtocolType)

public operator func !=(r: ProtocolType): Bool

功能:判断两个 ProtocolType 实例是否不等。

参数:

返回值:

  • Bool - 当二者代表的 Int32 值不等时,返回 true;否则,返回 false

operator func ==(ProtocolType)

public operator func ==(r: ProtocolType): Bool

功能:判断两个 ProtocolType 实例是否相等。

参数:

返回值:

  • Bool - 当二者代表的 Int32 值相等时,返回 true;否则,返回 false

struct RawAddress

public struct RawAddress {
    public init(addr: Array<Byte>)
}

功能:提供了 RawSocket 的通信地址创建和获取功能。

prop addr

public prop addr: Array<Byte>

功能:获取地址。

类型:Array<Byte>

init(Array<Byte>)

public init(addr: Array<Byte>)

功能:根据字节数组创建地址。

参数:

  • 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

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 实例的哈希值。

返回值:

func toString()

public func toString(): String

功能:返回当前 SocketDomain 实例的字符串表示。

返回值:

operator func !=(SocketDomain)

public operator func !=(r: SocketDomain): Bool

功能:比较两个 SocketDomain 实例是否不等。

参数:

返回值:

  • Bool - 当二者代表的 Int32 值不等时,返回 true;否则,返回 false

operator func ==(SocketDomain)

public operator func ==(r: SocketDomain): Bool

功能:比较两个 SocketDomain 实例是否相等。

参数:

返回值:

  • Bool - 当二者代表的 Int32 值相等时,返回 true;否则,返回 false

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 个。

异常:

func toString()

public override func toString(): String

功能:将 TCP KeepAlive 属性配置转换为字符串。

返回值:

  • String - 转换后的字符串。

operator func !=(SocketKeepAliveConfig)

public override operator func !=(other: SocketKeepAliveConfig): Bool

功能:判断两个 SocketKeepAliveConfig 实例是否不等。

参数:

返回值:

  • Bool - 如果不等,则返回 true;否则,返回 false

operator func ==(SocketKeepAliveConfig)

public override operator func ==(other: SocketKeepAliveConfig): Bool

功能:判断两个 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 实例的哈希值。

返回值:

func toString()

public func toString(): String

功能:返回当前 SocketType 实例的字符串表示。

返回值:

operator func !=(SocketType)

public operator func !=(r: SocketType): Bool

功能:判断两个 SocketType 实例是否不等。

参数:

返回值:

  • Bool - 当二者代表的 Int32 值不等时,返回 true;否则,返回 false

operator func ==(SocketType)

public operator func ==(r: SocketType): Bool

功能:判断两个 SocketType 实例是否相等。

参数:

返回值:

  • Bool - 当二者代表的 Int32 值相等时,返回 true;否则,返回 false