/usr/local/lib/swipl/library/ext/clib/socket.pl
All Application Manual Name SummaryHelp

  • ext
    • clib
      • socket.pl -- Network socket (TCP and UDP) library
        • socket_create/2
        • tcp_socket/1
        • unix_domain_socket/1
        • tcp_close_socket/1
        • tcp_open_socket/2
        • tcp_open_socket/3
        • tcp_bind/2
        • tcp_listen/2
        • tcp_accept/3
        • tcp_connect/2
        • rewrite_host/3
        • tcp_connect/4
        • tcp_connect/3
        • tcp_select/3
        • try_proxy/4
        • proxy_for_url/3
        • udp_socket/1
        • udp_receive/4
        • udp_send/4
        • tcp_setopt/2
        • tcp_fcntl/3
        • tcp_getopt/2
        • host_address/3
        • tcp_host_to_address/2
        • gethostname/1
        • ip_name/2
        • negotiate_socks_connection/2
      • uid.pl
      • unix.pl -- Unix specific operations
      • syslog.pl -- Unix syslog interface
      • memfile.pl
      • time.pl -- Time and alarm library
      • uri.pl -- Process URIs
      • filesex.pl -- Extended operations on files
      • uuid.pl -- Universally Unique Identifier (UUID) Library
      • sha.pl -- SHA secure hashes
      • process.pl -- Create processes and redirect I/O
      • hash_stream.pl -- Maintain a hash on a stream
      • md5.pl -- MD5 hashes
      • mallocinfo.pl -- Memory allocation details
      • udp_broadcast.pl -- A UDP broadcast proxy
      • cgi.pl -- Read CGI parameters
      • streampool.pl -- Input multiplexing
 tcp_connect(+Address, -StreamPair, +Options) is det
tcp_connect(+Socket, +Address, -StreamPair) is det
Establish a TCP communication as a client. The +,-,+ mode is the preferred way for a client to establish a connection. This predicate can be hooked to support network proxies. To use a proxy, the hook proxy_for_url/3 must be defined. Permitted options are:
bypass_proxy(+Boolean)
Defaults to false. If true, do not attempt to use any proxies to obtain the connection
nodelay(+Boolean)
Defaults to false. If true, set nodelay on the resulting socket using tcp_setopt(Socket, nodelay)
domain(+Domain)
One of `inet' or inet6. When omitted we use host_address/2 with type(stream) and try the returned addresses in order.

The +,+,- mode is deprecated and does not support proxies. It behaves like tcp_connect/4, but creates a stream pair (see stream_pair/3).

Arguments:
Address- is either a Host:Port term or a file name (atom or string). The latter connects to an AF_UNIX socket and requires unix_domain_socket/1.
Errors
- proxy_error(tried(ResultList)) is raised by mode (+,-,+) if proxies are defines by proxy_for_url/3 but no proxy can establsh the connection. ResultList contains one or more terms of the form false(Proxy) for a hook that simply failed or error(Proxy, ErrorTerm) for a hook that raised an exception.
See also
- library(http/http_proxy) defines a hook that allows to connect through HTTP proxies that support the CONNECT method.