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}。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。