connect(Address, Port, Opts) -> {ok, Socket} | {error, Reason}
connect(Address, Port, Opts, Timeout) ->
{ok, Socket} | {error, Reason}
Address = inet:socket_address() | inet:hostname()
Port = inet:port_number()
Opts = [inet:inet_backend() | connect_option()]
Timeout = timeout()
Socket = socket()
Reason = timeout | inet:posix()
连接到 IP 地址为 Address
的主机上 TCP 端口 Port
上的服务器。参数 Address
可以是主机名或 IP 地址。
可以使用以下选项:
{ip, Address}
-
如果主机有多个网络接口,则此选项指定使用哪一个。
{ifaddr, Address}
-
与
{ip, Address}
相同。如果主机有多个网络接口,则此选项指定使用哪一个。但是,如果这是一个
socket:sockaddr_in()
或者socket:sockaddr_in6()
这优先于之前用ip
和port
选项。如果这些选项(ip
或/和port
)然而来了后这个选项,他们可能会用来更新该选项的相应字段(例如ip
, 这addr
场,并且对于port
, 这port
场地)。 {fd, integer() >= 0}
-
如果在未使用
gen_tcp
的情况下以某种方式连接了套接字,请使用此选项为其传递文件说明符。如果{ip, Address}
和/或{port, port_number()}
与此选项结合使用,则在连接之前将fd
绑定到指定的接口和端口。如果未指定这些选项,则假定fd
已正确绑定。 inet
-
设置 IPv4 的套接字。
inet6
-
设置 IPv6 的套接字。
local
-
设置 Unix 域套接字。看
inet:local_address()
{port, Port}
-
指定要使用的本地端口号。
{tcp_module, module()}
-
覆盖使用哪个回调模块。对于 IPv4,默认为
inet_tcp
;对于 IPv6,默认为inet6_tcp
。 Opt
数据包可以发送到返回的套接字Socket
使用send/2
。从对等方发送的数据包作为消息传递:
{tcp, Socket, Data}
如果插座位于{active, N}
模式(参见setopts(Socket, Options)有关详细信息),其消息计数器下降到0
,传递以下消息以指示套接字已转换为被动状态({active, false}
) 模式:
{tcp_passive, Socket}
如果套接字关闭,则会传递以下消息:
{tcp_closed, Socket}
如果套接字上发生错误,则会传递以下消息(除非{active, false}
在套接字的选项列表中指定,在这种情况下,通过调用检索数据包recv/2
):
{tcp_error, Socket, Reason}
可选的Timeout
参数指定time-out(以毫秒为单位)。默认为 infinity
。
请记住,如果底层操作系统 connect()
调用返回超时,则 gen_tcp:connect
也将返回超时(即 {error, etimedout}
),即使指定了更大的 Timeout
也是如此。
指定选项的默认值connect
可以受内核配置参数的影响inet_default_connect_options
。详细信息请参见inet(3)
.
相关用法
- erlang connect(Socket, Addr, Port, Opts, Timeout)用法及代码示例
- erlang concat用法及代码示例
- erlang cons(Item, Q1 :: queue(Item))用法及代码示例
- erlang consult(Filename)用法及代码示例
- erlang concat(Things)用法及代码示例
- erlang constant_function(Set, AnySet)用法及代码示例
- erlang converse(BinRel1)用法及代码示例
- erlang cos用法及代码示例
- erlang copy用法及代码示例
- erlang composite(Function1, Function2)用法及代码示例
- erlang compose_query(QueryList)用法及代码示例
- erlang compose_query(QueryList, Options)用法及代码示例
- erlang chr用法及代码示例
- erlang ceil(Number)用法及代码示例
- erlang crc32(OldCrc, Data)用法及代码示例
- erlang crc32_combine(FirstCrc, SecondCrc, SecondSize)用法及代码示例
- erlang carriers(Options)用法及代码示例
- erlang cd(Dir)用法及代码示例
- erlang cmd(Command)用法及代码示例
- erlang crc32(Z, PrevCRC, Data)用法及代码示例
- erlang casefold(String :: unicode:chardata())用法及代码示例
- erlang chomp(String :: unicode:chardata())用法及代码示例
- erlang cspan(String, Chars)用法及代码示例
- erlang characters_to_list(Data, InEncoding)用法及代码示例
- erlang characters_to_nfc_list(CD :: chardata())用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 connect(Address, Port, Opts) -> {ok, Socket} | {error, Reason}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。