socket, socket, kPMSocket — A description of a TCP/IP socket.


socket structure { unique ID, interface, port, protocol family, time out, service, SSL, Bonjour domains, options, URLs, state };
unique ID : string, default, length 1..255
interface : string, default
port : integer, default, optional, range 0..65536
protocol family : string, choice, default
time out : integer, default, optional, range 15..600
service : string, optional
SSL : SSL structure, optional
Bonjour domains : array of strings, optional, unique
options : array of socket options elements, optional, unique
URLs : array of strings, optional, unique
state : string, choice, default


A description of a TCP/IP socket.


unique ID. Unique identifier.

unique ID must be unique within the immediate set of sockets. unique ID is used to identify a specific socket within a set and for reporting.

unique ID is a string. If unique ID is omitted, a default is created. unique ID must be between 1 and 255 characters long, inclusive.

interface. Bind to which interface (hostname).

interface is the hostname or IP address the socket binds to. An IP address is preferred as it avoids a domain name lookup. interface format must correspond to the protocol family.

To bind to the localhost with IPv4 use: ''
To bind to the localhost with IPv6 use: '::1'

Sockets can bind to all available interfaces by setting Interface to an empty string.

interface is a string. If interface is omitted, the default "" is used.

port. port to accept incoming connections on.

port is an integer. If port is omitted, the default 0 is used. port is optional. port must be between 0 and 65536, inclusive.

protocol family. Network protocol to use.

To listen to both IPv4 and IPv6, create two sockets with a common port but listening to different protocols.

protocol family is a string. If protocol family is omitted, the default IPv4 is used. protocol family must be one of the following two constants:

  • IPv4, kPMSocketProtocolFamily_IPv4.
  • IPv6, kPMSocketProtocolFamily_IPv6.

time out. Seconds of silence before a connection times out.

time out is the number of seconds a silent connection should wait before automatically disconnecting. A period of silence occurs when no information is being sent or received.

time out is an integer. If time out is omitted, the default 30 is used. time out is optional. time out must be between 15 and 600, inclusive.

service. PAM service.

service is a string. service is optional.

SSL. SSL configuration.

SSL is a SSL structure. SSL is optional.

Bonjour domains. Bonjour domains.

Bonjour domains enumerates the domains in which services are published. A socket may be published in multiple domains. Where no domains are listed, the default domains are used. Where an empty list is used, Bonjour is disabled. Bonjour is also known as ZeroConf.

Bonjour domains is an array of strings. Bonjour domains is optional. Each item in Bonjour domains must be unique.

options. Socket options.

options is an array of socket options elements. options is optional. Each item in options must be unique.

URLs. URL to connect to this socket.

URLs is an array of strings. URLs is optional. Each item in URLs must be unique.

state. State of the socket.

state is a string. If state is omitted, the default preparing is used. state must be one of the following three constants:

  • preparing, kPMSocketState_Preparing.
  • listening, kPMSocketState_Listening.
  • error, kPMSocketState_Error.