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