public class IPMask <: ToString {
public init(buf: Array<UInt8>)
public init(ones: Int64, bits: Int64)
public init(a: UInt8, b: UInt8, c: UInt8, d: UInt8)
} public init(buf: Array<UInt8>)
功能:初始化掩码值。
参数:
异常:
public init(ones: Int64, bits: Int64)
功能:初始化掩码值。
参数:
异常:
public init(a: UInt8, b: UInt8, c: UInt8, d: UInt8)
功能:初始化掩码值,参数值分别是 IPv4 的 4 个字节 a.b.c.d。
参数:
public class RawSocket {
public init(domain: SocketDomain, `type`: SocketType, protocol: ProtocolType)
} 功能:RawSocket 提供了套接字的基本功能。
可以访问特定通信域(domain)、类型(type)和协议(protocol)组合的套接字。Socket 包已经提供了 TCP、 UDP 等常用网络协议的支持,因此,该类型适用于其他类型的网络编程需求。
public prop localAddr: RawAddress
功能:获取当前 RawSocket 实例的本地地址。
类型:RawAddress
异常:
public mut prop readTimeout: ?Duration
功能:获取或设置当前 RawSocket 实例的读超时时间。
类型:?Duration
异常:
public prop remoteAddr: RawAddress
功能:获取当前 RawSocket 实例的对端地址。
类型:RawAddress
异常:
public mut prop writeTimeout: ?Duration
功能:获取或设置当前 RawSocket 实例的写超时时间。
类型:?Duration
异常:
public init(domain: SocketDomain, `type`: SocketType, protocol: ProtocolType)
功能:创建特定通信域、类型、协议组合的套接字。
参数:
异常:
public func accept(timeout!: ?Duration = None): RawSocket
功能:接收当前 RawSocket 实例监听时挂起连接队列上的第一个连接请求,返回一个用于通信的 RawSocket。
参数:
返回值:
异常:
public func bind(addr: RawAddress): Unit
功能:将当前 RawSocket 实例与指定的套接字地址进行绑定。
参数:
异常:
public func connect(addr: RawAddress, timeout!: ?Duration = None): Unit
功能:向目标地址发送连接请求。
参数:
异常:
public unsafe func getSocketOption(level: Int32, option: Int32, value: CPointer<Byte>, len: CPointer<Int32>): Unit
功能:获取套接字选项的值。
参数:
异常:
public func listen(backlog: Int32): Unit
功能:监听当前 RawSocket 实例绑定的地址。
参数:
异常:
public func receive(buffer: Array<Byte>, flags: Int32): Int64
功能:接收来自连接对端发送的数据。
参数:
返回值:
异常:
public func receiveFrom(buffer: Array<Byte>, flags: Int32): (RawAddress, Int64)
功能:接收来自其它 RawSocket 实例的数据。
参数:
返回值:
异常:
public func send(buffer: Array<Byte>, flags: Int32): Unit
功能:向连接的对端发送数据。
参数:
异常:
public func sendTo(addr: RawAddress, buffer: Array<Byte>, flags: Int32): Unit
功能:向目标地址发送数据。若 RawSocket 是 DATAGRAM 类型,发送的数据包大小不允许超过 65507 字节。
参数:
异常:
public unsafe func setSocketOption(level: Int32, option: Int32, value: CPointer<Byte>, len: Int32): Unit
功能:设置套接字选项。
参数:
异常:
public open class SocketAddress <: ToString & Hashable & Equatable<SocketAddress> {
public init(kind: SocketAddressKind, address: Array<UInt8>, port: UInt16)
public init(hostAddress: String, port: UInt16)
public init(unixPath!: String)
} 功能:具有特定类型、地址和端口的套接字地址。
public init(kind: SocketAddressKind, address: Array<UInt8>, port: UInt16)
功能:根据传入的套接字地址类型,IP 地址和端口号创建 SocketAddress 实例。
参数:
异常:
public init(unixPath!: String)
功能:根据传入的文件地址创建 SocketAddress 实例。
参数:
异常:
public init(hostAddress: String, port: UInt16)
功能:根据传入的 IP 地址和端口号创建 SocketAddress 实例。
参数:
异常:
public static func resolve(domain: String, port: UInt16): ?SocketAddress
功能:解析域和端口,并构造 SocketAddress 的实例。
当传入 IP 地址时,不包含 DNS 能力。当传入域名地址时,通过 getaddrinfo 解析得到 IP 地址,其中优先解析 IPv4 地址,并仅返回获取到的首个 IP 地址。
参数:
返回值:
public func kapString(): String
功能:获取 IP 协议、地址和端口字符串。
返回值:
异常:
public func mask(mask: IPMask): SocketAddressWithMask
功能:使用掩码处理地址。
参数:
返回值:
异常:
public open func toString(): String
功能:获取地址对象字符串。
格式为:"127.0.0.1:2048", "[::]:2048","[212c:3742::ffff:5863:6f00]:2048" 等。
异常:
public operator func != (that: SocketAddress): Bool
功能:判断两个 SocketAddress 是否不相等。
参数:
返回值:
public operator func ==(that: SocketAddress): Bool
功能:判断两个 SocketAddress 是否相等。
参数:
返回值:
public class SocketAddressWithMask <: SocketAddress {
public init(kind: SocketAddressKind, address: Array<UInt8>, port: UInt16, mask: IPMask)
public init(hostAddress: String, port: UInt16, mask: IPMask)
public init(socketAddr: SocketAddress, mask: IPMask)
} 功能:提供带有掩码的 SocketAddress。
public init(socketAddr: SocketAddress, mask: IPMask)
功能:创建 SocketAddressWithMask 实例。
参数:
异常:
public init(kind: SocketAddressKind, address: Array<UInt8>, port: UInt16, mask: IPMask)
功能:创建 SocketAddressWithMask 实例。
参数:
异常:
public init(hostAddress: String, port: UInt16, mask: IPMask)
功能:创建 SocketAddressWithMask 实例。
参数:
异常:
public func clone(): SocketAddressWithMask
功能:使用绑定的掩码处理地址,复制一个 SocketAddressWithMask 实例。
异常:
public override func hashCode(): Int64
功能:获取 SocketAddressWithMask 的 hashcode 值。
返回值:
public override func toString(): String
功能:将 SocketAddressWithMask 转换为字符串。
返回值:
public class TcpServerSocket <: ServerSocket {
public init(bindAt!: SocketAddress)
public init(bindAt!: UInt16)
} 功能:监听 TCP 连接的服务端。
套接字被创建后,可通过属性和 setSocketOptionXX 接口配置属性。
启动监听需要调用 bind() 将套接字绑定到本地端口。accept() 接口将接受 TCP 连接,阻塞等待连接,若队列中已有连接,则可立即返回。
套接字需要通过 close 显式关闭。
public mut prop backlogSize: Int64
功能:设置和读取 backlog 大小。
仅可在调用 bind 前调用,否则将抛出异常。
变量是否生效取决于系统行为。
类型:Int64
异常:
public override prop localAddress: SocketAddress
功能:读取 Socket 将要或已经被绑定的本地地址。
异常:
public mut prop receiveBufferSize: Int64
功能:设置和读取 SO_RCVBUF 属性。
类型:Int64
异常:
public mut prop reuseAddress: Bool
功能:设置和读取 SO_REUSEADDR 属性,默认设置为 true。
属性生效后的行为取决于系统,使用前,请参阅不同系统针对此属性 SO_REUSEADDR/SOCK_REUSEADDR 的说明文档。
类型:Bool
public mut prop reusePort: Bool
功能:设置和读取 SO_REUSEPORT 属性。
仅可在绑定前被修改。Windows 上可使用 SO_REUSEADDR,无该属性,抛出异常。
属性默认及配置生效后的行为取决于系统,使用前,请参阅不同系统针对此属性 SO_REUSEPORT 的说明文档。
同时开启 SO_REUSEADDR/SO_REUSEPORT 会导致不可预知的系统错误,用户需谨慎配置值。
类型:Bool
异常:
public mut prop sendBufferSize: Int64
功能:设置和读取 SO_SNDBUF 属性。
类型:Int64
异常:
public init(bindAt!: SocketAddress)
功能:创建一个 TcpServerSocket 实例,尚未绑定,因此客户端无法连接。
参数:
public init(bindAt!: UInt16)
功能:创建一个 TcpServerSocket 实例,尚未绑定,因此客户端无法连接。
参数:
public override func accept(): TcpSocket
功能:监听或接受客户端连接。阻塞等待。
返回值:
异常:
public override func accept(timeout!: ?Duration): TcpSocket
功能:监听或接受客户端连接。
参数:
返回值:
异常:
public override func bind(): Unit
功能:绑定本地端口失败后需要 close 套接字,不支持多次重试。
异常:
public func getSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: CPointer<UIntNative>
): Unit 功能:获取指定的套接字参数。
参数:
异常:
public func getSocketOptionBool(
level: Int32,
option: Int32
): Bool 功能:获取指定的套接字参数。从 IntNative 强转而来。0 => false,非 0 => true。
参数:
返回值:
异常:
public func getSocketOptionIntNative(
level: Int32,
option: Int32
): IntNative 功能:获取指定的套接字参数。
参数:
返回值:
异常:
public override func isClosed(): Bool
功能:检查套接字是否关闭。
返回值:
public func setSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: UIntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionBool(
level: Int32,
option: Int32,
value: Bool
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionIntNative(
level: Int32,
option: Int32,
value: IntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public override func toString(): String
功能:返回当前 TcpServerSocket 的状态信息。
返回值:
public class TcpSocket <: StreamingSocket & Equatable<TcpSocket> & Hashable {
public init(address: String, port: UInt16)
public init(address: SocketAddress)
public init(address: SocketAddress, localAddress!: ?SocketAddress)
} 功能:请求 TCP 连接的客户端。
当实例对象被创建后,可使用 connect 函数创建连接,并在结束时显式执行 close 操作。
该类型继承自 StreamingSocket, 可参阅 StreamingSocket 章节获取更多信息。
public mut prop keepAlive: ?SocketKeepAliveConfig
功能:设置和读取保活属性,None 表示关闭保活。
用户未设置时将使用系统默认配置。设置此配置可能会被延迟或被系统忽略,取决于系统的处理能力。
public mut prop linger: ?Duration
功能:设置和读取 SO_LINGER 属性,默认值取决于系统,None 表示禁用此选项。
类型:?Duration
异常:
public override prop localAddress: SocketAddress
功能:读取 Socket 将要或已经被绑定的本地地址。
异常:
public mut prop noDelay: Bool
功能:设置和读取 TCP_NODELAY 属性,默认为 true。
这个选项将禁用 Nagel 算法,所有写入字节被无延迟得转发。当属性设置为 false 时,Nagel 算法将在发包前引入延时时间。
类型:Bool
public mut prop quickAcknowledge: Bool
功能:设置和读取 TCP_QUICKACK 属性,默认为 false。
这个选项类似于 noDelay,但仅影响 TCP ACK 和第一次响应。不支持 Windows 和 macOS 系统。
类型:Bool
public override mut prop readTimeout: ?Duration
功能:设置和读取读操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
异常:
public mut prop receiveBufferSize: Int64
功能:设置和读取 SO_RCVBUF 属性,提供一种方式指定收包缓存大小。选项的生效情况取决于系统。
类型:Int64
异常:
public override prop remoteAddress: SocketAddress
功能:读取 Socket 已经或将要连接的远端地址。
异常:
public mut prop sendBufferSize: Int64
功能:设置和读取 SO_SNDBUF 属性,提供一种方式指定发包缓存大小。选项的生效情况取决于系统。
类型:Int64
异常:
public override mut prop writeTimeout: ?Duration
功能:设置和读取写操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
异常:
public init(address: SocketAddress)
功能:创建一个未连接的套接字。
参数:
异常:
public init(address: SocketAddress, localAddress!: ?SocketAddress)
功能:创建一个未连接的套接字,并且绑定到指定本地地址,本地地址为 None 时,将随机选定地址去绑定。
此接口当 localAddress 不为 None 时,将默认设置 SO_REUSEADDR 为 true,否则可能导致 "address already in use" 的错误。如果需要变更此配置,可以通过调用 setSocketOptionBool(SocketOptions.SOL_SOCKET, SocketOptions.SO_REUSEADDR, false)。另外,本地地址和远端地址需要均为 IPv4。
参数:
异常:
public init(address: String, port: UInt16)
功能:创建一个未连接的套接字。
参数:
异常:
public func connect(timeout!: ?Duration = None): Unit
功能:连接远端套接字,会自动绑定本地地址,因此不需要进行额外的绑定操作。
参数:
异常:
public func getSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: CPointer<UIntNative>
): Unit 功能:读取指定的套接字参数。
参数:
异常:
public func getSocketOptionBool(
level: Int32,
option: Int32
): Bool 功能:读取指定的套接字参数。从 IntNative 强转而来。0 => false,非 0 => true。
参数:
返回值:
异常:
public func getSocketOptionIntNative(
level: Int32,
option: Int32
): IntNative 功能:读取指定的套接字参数。
参数:
返回值:
异常:
public func isClosed(): Bool
功能:判断套接字是否通过调用 close 显式关闭。
返回值:
public override func read(buffer: Array<Byte>): Int64
功能:读取报文。超时情况按 readTimeout 决定,详见 readTimeout。
参数:
返回值:
异常:
public func setSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: UIntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionBool(
level: Int32,
option: Int32,
value: Bool
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionIntNative(
level: Int32,
option: Int32,
value: IntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public override func write(payload: Array<Byte>): Unit
功能:写入报文。超时情况按 writeTimeout 决定,详见 writeTimeout。
参数:
异常:
public override operator func !=(other: TcpSocket): Bool
功能:判断两个 TcpSocket 实例是否不等。
参数:
返回值:
public override operator func ==(other: TcpSocket): Bool
功能:判断两个 TcpSocket 实例是否相等。
参数:
返回值:
public class UdpSocket <: DatagramSocket {
public init(bindAt!: SocketAddress)
public init(bindAt!: UInt16)
} 功能:提供 udp 报文通信。
UDPSocket 创建实例后,需要调用 bind() 绑定,可在不与远端建连的前提下接受报文。不过,UDPSocket 也可以通过 connect()/disconnect() 接口进行建连。
UDP 协议要求传输报文大小不可超过 64KB 。
UDPSocket 需要被显式 close() 。可以参阅 DatagramSocket 获取更多信息。
public override prop localAddress: SocketAddress
功能:读取 Socket 将要或已经被绑定的本地地址。
异常:
public mut prop receiveBufferSize: Int64
功能:设置和读取 SO_RCVBUF 属性。
类型:Int64
异常:
public override mut prop receiveTimeout: ?Duration
功能:设置和读取 receive/receiveFrom 操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
异常:
public override prop remoteAddress: ?SocketAddress
功能:读取 Socket 已经连接的远端地址,当 Socket 未连接时返回 None。
类型:?SocketAddress
异常:
public mut prop reuseAddress: Bool
功能:设置和读取 SO_REUSEADDR 属性。
属性默认以及生效后的行为取决于系统,使用前,请参阅不同系统针对此属性 SO_REUSEADDR/SOCK_REUSEADDR 的说明文档。
类型:Bool
public mut prop reusePort: Bool
功能:设置和读取 SO_REUSEPORT 属性。
Windows 上可使用 SO_REUSEADDR,但无 SO_REUSEPORT 属性,因此会抛出异常。
属性默认以及配置生效后的行为取决于系统,使用前,请参阅不同系统针对此属性 SO_REUSEPORT 的说明文档。
类型:Bool
异常:
public mut prop sendBufferSize: Int64
功能:设置和读取 SO_SNDBUF 属性。
类型:Int64
异常:
public override mut prop sendTimeout: ?Duration
功能:设置和读取 send/sendTo 操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
public init(bindAt!: SocketAddress)
功能:创建一个未绑定的 UDPSocket 实例。
参数:
异常:
public func bind()
功能:绑定本地端口失败后需要 close 套接字,不支持多次重试。
异常:
public override func close(): Unit
功能:关闭套接字,所有操作除了 close/isClosed 之外,均不允许再调用。接口允许多次调用。
public func connect(remote: SocketAddress): Unit
功能:连接特定远端地址,可通过 disconnect 撤销配置。
仅接受该远端地址的报文。必须在调用 bind 后执行。此操作执行后,端口将开始接收 ICMP 报文,若收到异常报文后,可能导致 send/sendTo 执行失败。
参数:
异常:
public func getSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: CPointer<UIntNative>
): Unit 功能:获取指定的套接字参数。
参数:
异常:
public func getSocketOptionBool(
level: Int32,
option: Int32
): Bool 功能:获取指定的套接字参数。从 IntNative 强转而来。0 => false,非 0 => true。
参数:
返回值:
异常:
public func getSocketOptionIntNative(
level: Int32,
option: Int32
): IntNative 功能:获取指定的套接字参数。
参数:
返回值:
异常:
public override func isClosed(): Bool
功能:判断套接字是否通过调用 close 显式关闭。
返回值:
public func receive(buffer: Array<Byte>): Int64
功能:从 connect 连接到的地址收取报文。
参数:
返回值:
public override func receiveFrom(buffer: Array<Byte>): (SocketAddress, Int64)
功能:接收报文。
参数:
返回值:
异常:
public func send(payload: Array<Byte>): Unit
功能:发送报文到 connect 连接到的地址。
参数:
异常:
public override func sendTo(recipient: SocketAddress, payload: Array<Byte>): Unit
功能:发送报文。当没有足够的缓存地址时可能会被阻塞。
参数:
异常:
public func setSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: UIntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionBool(
level: Int32,
option: Int32,
value: Bool
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionIntNative(
level: Int32,
option: Int32,
value: IntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public class UnixDatagramSocket <: DatagramSocket {
public init(bindAt!: SocketAddress)
public init(bindAt!: String)
} 功能:提供基于数据包的主机通讯能力。
UnixDatagramSocket 实例创建后,应当显式调用 bind() 接口绑定。Unix 数据包套接字不需要连接,不需要与远端握手多次。不过用户也可以通过 connect/disconnect 接口与远端建连和断连。
不同于 UDP,UDS 没有数据包大小限制,限制来源于操作系统和接口实现。
套接字资源需要用 close 接口显式回收。可参阅 DatagramSocket 获取更多信息。
public override prop localAddress: SocketAddress
功能:读取 socket 将要或已经绑定的本地地址。
异常:
public mut prop receiveBufferSize: Int64
功能:设置和读取 SO_RCVBUF 属性,提供一种方式指定发包缓存大小。选项的生效情况取决于系统。
类型:Int64
异常:
public override mut prop receiveTimeout: ?Duration
功能:设置和读取 receive/receiveFrom 操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
异常:
public override prop remoteAddress: ?SocketAddress
功能:读取 Socket 已经连接的远端地址,当 Socket 未连接时返回 None。
类型:?SocketAddress
异常:
public mut prop sendBufferSize: Int64
功能:设置和读取 SO_SNDBUF 属性,提供一种方式指定发包缓存大小。选项的生效情况取决于系统。
类型:Int64
异常:
public override mut prop sendTimeout: ?Duration
功能:设置和读取 send/sendTo 操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
异常:
public init(bindAt!: SocketAddress)
功能:创建一个未连接的 UnixDatagramSocket 实例。
此文件类型可通过 isSock() 判断是否存在,可通过 unlink() 接口删除。
参数:
异常:
public init(bindAt!: String)
功能:创建一个未连接的 UnixDatagramSocket 实例。
此文件类型可通过 isSock() 判断是否存在,可通过 unlink() 接口删除。
参数:
异常:
public func bind(): Unit
功能:绑定一个 Unix datagram 套接字,并创建监听队列。
此接口自动在本地地址中创建一个套接字文件,如该文件已存在则会绑定失败。此文件类型可通过 isSock 判断是否存在,可通过 unlink() 接口删除,失败后需要 close 套接字,不支持多次重试。
异常:
public override func close(): Unit
功能:关闭套接字,所有操作除了 close/isClosed 之外,均不允许再调用。接口允许多次调用。
public func connect(remote: SocketAddress): Unit
功能:连接特定远端地址,可通过 disconnect 撤销配置。
仅接受该远端地址的报文。默认执行 bind,因此不需额外调用 bind。此操作执行后,端口将开始接收 ICMP 报文,若收到异常报文后,可能导致 send/sendTo 执行失败。
参数:
异常:
public func connect(remotePath: String): Unit
功能:连接特定远端地址,可通过 disconnect 撤销配置。
仅接受该远端地址的报文。必须在 bind 后调用。此操作执行后,端口将开始接收 ICMP 报文,若收到异常报文后,可能导致 send/sendTo 执行失败。
参数:
异常:
public func disconnect(): Unit
功能:停止连接。取消仅收取特定对端报文。可在 connect 前调用,可多次调用。
异常:
public func getSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: CPointer<UIntNative>
): Unit 功能:获取指定的套接字参数。
参数:
异常:
public func getSocketOptionIntNative(
level: Int32,
option: Int32
): IntNative 功能:获取指定的套接字参数。
参数:
返回值:
异常:
public override func isClosed(): Bool
功能:判断套接字是否通过调用 close 显式关闭。
返回值:
public func receive(buffer: Array<Byte>): Int64
功能:从 connect 连接到的地址收取报文。
参数:
返回值:
public override func receiveFrom(buffer: Array<Byte>): (SocketAddress, Int64)
功能:收取报文。
参数:
返回值:
异常:
public func send(payload: Array<Byte>): Unit
功能:发送报文到 connect 连接到的地址。
参数:
异常:
public override func sendTo(recipient: SocketAddress, payload: Array<Byte>): Unit
功能:发送报文。当没有足够的缓存地址时可能会被阻塞。
参数:
异常:
public func setSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: UIntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionBool(
level: Int32,
option: Int32,
value: Bool
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionIntNative(
level: Int32,
option: Int32,
value: IntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
func getSocketOptionBool(Int32, Int32)
public func getSocketOptionBool(
level: Int32,
option: Int32
): Bool 功能:获取指定的套接字参数。从 IntNative 强转而来。0 => false,非 0 => true。
参数:
返回值:
异常:
public override func toString(): String
功能:返回当前 UDS 的状态信息。
返回值:
public class UnixServerSocket <: ServerSocket
功能:提供基于双工流的主机通讯服务端。
UnixServerSocket 监听连接,创建后可以通过属性和 setSocketOptionXX 接口配置属性值。需要调用 bind() 接口绑定本地地址开始监听连接。可以通过 accept() 接口接受连接。
public mut prop backlogSize: Int64
功能:设置和读取 backlog 大小。仅可在调用 bind 前调用,否则将抛出异常。
变量是否生效取决于系统行为。
类型:Int64
异常:
public override prop localAddress: SocketAddress
功能:读取 Socket 将要或已经被绑定的本地地址。
异常:
public mut prop receiveBufferSize: Int64
功能:设置和读取 SO_RCVBUF 属性。
类型:Int64
异常:
public mut prop sendBufferSize: Int64
功能:设置和读取 SO_SNDBUF 属性。
类型:Int64
异常:
public init(bindAt!: SocketAddress)
功能:创建一个未连接的 UnixServerSocket 实例。
参数:
public init(bindAt!: String)
功能:创建一个未连接的 UnixServerSocket 实例。
此文件类型可通过 isSock 判断是否存在,可通过 unlink() 接口删除。
参数:
public override func accept(): UnixSocket
功能:等待接受一个客户端的连接,或从队列中读取连接。
返回值:
public override func accept(timeout!: ?Duration): UnixSocket
功能:等待接受一个客户端的连接,或从队列中读取连接。
参数:
返回值:
异常:
public override func bind(): Unit
功能:绑定一个 Unix domain 套接字,并创建监听队列。
此接口自动在本地地址中创建一个套接字文件,如该文件已存在则会绑定失败。此文件类型可通过 isSock 接口判断是否存在,可通过 unlink() 接口删除,失败后需要 close 套接字,不支持多次重试。
异常:
public override func close(): Unit
功能:关闭套接字,该套接字的所有操作除了 close/isClosed 之外,均不允许再调用。此接口允许多次调用。
public func getSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: CPointer<UIntNative>
): Unit 功能:获取指定的套接字参数。
参数:
异常:
public func getSocketOptionBool(
level: Int32,
option: Int32
): Bool 功能:获取指定的套接字参数。从 IntNative 强转而来。0 => false,非 0 => true。
参数:
返回值:
异常:
public func getSocketOptionIntNative(
level: Int32,
option: Int32
): IntNative 功能:获取返回值为整型的套接字参数。
参数:
返回值:
异常:
public func setSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: UIntNative
): Unit 功能:设置返回值为整型的套接字参数。
参数:
异常:
public func setSocketOptionBool(
level: Int32,
option: Int32,
value: Bool
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionIntNative(
level: Int32,
option: Int32,
value: IntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public override func toString(): String
功能:返回当前 UnixServerSocket 的状态信息。
返回值:
public class UnixSocket <: StreamingSocket {
public init(address: SocketAddress)
public init(path: String)
} 功能:提供基于双工流的主机通讯客户端。
UnixSocket 实例创建后应调用 connect() 接口创建连接,并且在结束时显式调用 close() 回收资源。可参阅 StreamingSocket 获取更多信息。
public override prop localAddress: SocketAddress
功能:读取 Socket 将要或已经被绑定的本地地址。
异常:
public override mut prop readTimeout: ?Duration
功能:设置和读取读操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值,过大时将设置为None,默认值为 None。
类型:?Duration
异常:
public mut prop receiveBufferSize: Int64
功能:设置和读取 SO_RCVBUF 属性。
类型:Int64
异常:
public override prop remoteAddress: SocketAddress
功能:读取 Socket 已经或将要连接的远端地址。
异常:
public mut prop sendBufferSize: Int64
功能:设置和读取 SO_SNDBUF 属性。
类型:Int64
异常:
public override mut prop writeTimeout: ?Duration
功能:设置和读取写操作超时时间。
如果设置的时间过小将会设置为最小时钟周期值;过大时将设置为最大超时时间(263-1 纳秒);默认值为 None。
类型:?Duration
异常:
public init(address: SocketAddress)
功能:创建一个未连接的 UnixSocket 实例。
参数:
public init(path: String)
功能:创建一个未连接的 UnixSocket 实例。
此文件类型可通过 isSock 判断是否存在,可通过 unlink() 接口删除。
参数:
public func connect(timeout!: ?Duration = None)
功能:建立远端连接,对端拒绝时连接失败,会自动绑定本地地址,因此不需要进行额外的绑定操作。
参数:
异常:
public func getSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: CPointer<UIntNative>
): Unit 功能:获取指定的套接字参数。
参数:
异常:
public func getSocketOptionBool(
level: Int32,
option: Int32
): Bool 功能:获取指定的套接字参数。从 IntNative 强转而来。0 => false,非 0 => true。
参数:
返回值:
异常:
public func getSocketOptionIntNative(
level: Int32,
option: Int32
): IntNative 功能:获取指定的套接字参数。
参数:
返回值:
异常:
public func isClosed(): Bool
功能:判断套接字是否通过调用 close 显式关闭。
返回值:
public override func read(buffer: Array<Byte>): Int64
功能:读取报文。超时情况按 readTimeout 决定,详见 readTimeout。
参数:
返回值:
异常:
public func setSocketOption(
level: Int32,
option: Int32,
value: CPointer<Unit>,
valueLength: UIntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionBool(
level: Int32,
option: Int32,
value: Bool
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public func setSocketOptionIntNative(
level: Int32,
option: Int32,
value: IntNative
): Unit 功能:设置指定的套接字参数。
参数:
异常:
public override func toString(): String
功能:返回当前 UnixSocket 的状态信息。
返回值:
public override func write(buffer: Array<Byte>): Unit
功能:读取写入。超时情况按 writeTimeout 决定,详见 writeTimeout。
参数:
异常: