GCDTCPSocket

open class GCDTCPSocket: NSObject, GCDAsyncSocketDelegate, RawTCPSocketProtocol

The TCP socket build upon GCDAsyncSocket.

Warning

This class is not thread-safe.
  • Initailize an instance with GCDAsyncSocket.

    Declaration

    Swift

    public init(socket: GCDAsyncSocket? = nil)

    Parameters

    socket

    The socket object to work with. If this is nil, then a new GCDAsyncSocket instance is created.

  • The RawTCPSocketDelegate instance.

    Declaration

    Swift

    weak open var delegate: RawTCPSocketDelegate?
  • If the socket is connected.

    Declaration

    Swift

    open var isConnected: Bool
  • The source address.

    Declaration

    Swift

    open var sourceIPAddress: IPAddress?
  • The source port.

    Declaration

    Swift

    open var sourcePort: Port?
  • The destination address.

    Note

    Always returns nil.

    Declaration

    Swift

    open var destinationIPAddress: IPAddress?
  • The destination port.

    Note

    Always returns nil.

    Declaration

    Swift

    open var destinationPort: Port?
  • Connect to remote host.

    Throws

    The error occured when connecting to host.

    Declaration

    Swift

    open func connectTo(host: String, port: Int, enableTLS: Bool = false, tlsSettings: [AnyHashable: Any]? = nil) throws

    Parameters

    host

    Remote host.

    port

    Remote port.

    enableTLS

    Should TLS be enabled.

    tlsSettings

    The settings of TLS.

  • Disconnect the socket.

    The socket will disconnect elegantly after any queued writing data are successfully sent.

    Declaration

    Swift

    open func disconnect()
  • Disconnect the socket immediately.

    Declaration

    Swift

    open func forceDisconnect()
  • Send data to remote.

    Warning

    This should only be called after the last write is finished, i.e., delegate?.didWriteData() is called.

    Declaration

    Swift

    open func write(data: Data)

    Parameters

    data

    Data to send.

  • Read data from the socket.

    Warning

    This should only be called after the last read is finished, i.e., delegate?.didReadData() is called.

    Declaration

    Swift

    open func readData()
  • Read specific length of data from the socket.

    Warning

    This should only be called after the last read is finished, i.e., delegate?.didReadData() is called.

    Declaration

    Swift

    open func readDataTo(length: Int)

    Parameters

    length

    The length of the data to read.

  • Read data until a specific pattern (including the pattern).

    Warning

    This should only be called after the last read is finished, i.e., delegate?.didReadData() is called.

    Declaration

    Swift

    open func readDataTo(data: Data)

    Parameters

    data

    The pattern.

  • Read data until a specific pattern (including the pattern).

    Warning

    This should only be called after the last read is finished, i.e., delegate?.didReadData() is called.

    Declaration

    Swift

    open func readDataTo(data: Data, maxLength: Int)

    Parameters

    data

    The pattern.

    maxLength

    Ignored since GCDAsyncSocket does not support this. The max length of data to scan for the pattern.

  • Send data to remote.

    Warning

    This should only be called after the last write is finished, i.e., delegate?.didWriteData() is called.

    Declaration

    Swift

    func write(data: Data, withTimeout timeout: Double)

    Parameters

    data

    Data to send.

    timeout

    Operation timeout.

  • Read specific length of data from the socket.

    Warning

    This should only be called after the last read is finished, i.e., delegate?.didReadData() is called.

    Declaration

    Swift

    func readDataTo(length: Int, withTimeout timeout: Double)

    Parameters

    length

    The length of the data to read.

    timeout

    Operation timeout.

  • Read data until a specific pattern (including the pattern).

    Warning

    This should only be called after the last read is finished, i.e., delegate?.didReadData() is called.

    Declaration

    Swift

    func readDataTo(data: Data, withTimeout timeout: Double)

    Parameters

    data

    The pattern.

    timeout

    Operation timeout.

  • Connect to remote host.

    Throws

    The error occured when connecting to host.

    Declaration

    Swift

    func connectTo(host: String, withPort port: Int) throws

    Parameters

    host

    Remote host.

    port

    Remote port.

  • Secures the connection using SSL/TLS.

    Declaration

    Swift

    func startTLSWith(settings: [AnyHashable: Any]!)

    Parameters

    tlsSettings

    TLS settings, refer to documents of GCDAsyncSocket for detail.