[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)
- 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).
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.