6.4 TCP socket predicates
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
    • Packages
      • SWI-Prolog C-library
        • library(socket): Network socket (TCP and UDP) library
          • TCP socket predicates
            • tcp_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
            • tcp_connect/4
            • tcp_connect/3
            • tcp_select/3
            • try_proxy/4
            • proxy_for_url/3
            • tcp_setopt/2
            • tcp_fcntl/3
            • tcp_getopt/2
            • tcp_host_to_address/2
            • gethostname/1
            • negotiate_socks_connection/2
Availability::- use_module(library(socket)).(can be autoloaded)
Source[det]tcp_connect(+Address, -StreamPair, +Options)
[det]tcp_connect(+Socket, +Address, -StreamPair)
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)

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

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.