当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang open()用法及代码示例


open() -> {ok, Socket} | {error, inet:posix()}
open(Port) -> {ok, Socket} | {error, inet:posix()}
open(Opts) -> {ok, Socket} | {error, inet:posix()}
open(Port, Opts) -> {ok, Socket} | {error, inet:posix()}
类型:
Opts = [Opt]
Opt = 
    {ifaddr, IP | SockAddr} |
    {ip, IP} |
    {port, Port} |
 inet:address_family() |
    {type, SockType} |
    {netns, file:filename_all()} |
    {bind_to_device, binary()} |
 option()
IP = inet:ip_address() | any | loopback
SockAddr = socket:sockaddr_in() | socket:sockaddr_in6()
Port = inet:port_number()
SockType = seqpacket | stream
Socket = sctp_socket()

创建 SCTP 套接字并将其绑定到所有 {ip,IP} (或同义 {ifaddr,IP} )选项指定的本地地址(此函数称为 SCTP multi-homing)。默认的 IPPortany0 ,表示绑定到任何空闲端口上的所有本地地址。

也可以使用 {ifaddr, SockAddr} ,在这种情况下,它优先于 ipport 选项。不过,这些选项可用于更新 ifaddr 的地址和端口(如果它们出现在选项列表中的 ifaddr 之后),但不建议这样做。

其他选项:


inet6

设置 IPv6 的套接字。


inet

设置 IPv4 的套接字。这是默认设置。

一组默认的socket选项用来。特别是,套接字打开于二进制被动的模式,带有SockTypeseqpacket,并且具有相当大的核心和司机缓冲器.

如果插座位于被动的模式数据可以通过接收recv/1,2调用。

如果插座位于积极的模式数据接收到的数据作为消息传递到控制进程:

{sctp, Socket, FromIP, FromPort, {AncData, Data}}

参看recv/1,2有关消息字段的说明。

注意

遗憾的是,此消息格式与open(Port)带有辅助数据的消息格式,以及来自recv/1,2返回元组格式。

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 open() -> {ok, Socket} | {error, inet:posix()}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。