bind静态方法
监听指定地址和端口。
当返回的future完成时,服务器套接字将绑定到给定的address
和port
并开始监听。
address
可以是String或InternetAddress。如果address
是String,bind将执行InternetAddress.lookup并使用列表中的第一个值。要监听环回适配器,它将仅允许来自本地主机的入站连接,请使用值InternetAddress.loopbackIPv4或InternetAddress.loopbackIPv6。要允许来自网络的入站连接,请使用InternetAddress.anyIPv4或InternetAddress.anyIPv6绑定到所有接口或特定接口的IP地址。
如果使用IPv6地址,将接受IPv6和IPv4连接。要仅限制为版本6(IPv6),请使用v6Only
将版本6设置为唯一。
如果port
的值为0
,系统将选择一个短暂的端口号。实际使用的端口号可以通过port
获取器检索。
可选参数backlog
可以用于指定底层OS监听设置的监听队列。如果backlog
的值为0
(默认值),系统将选择一个合理的值。
可选参数shared
指定是否可以有额外的ServerSocket对象绑定到相同的address
、port
和v6Only
组合。如果shared
为true
并且有更多的服务器套接字绑定到该端口,则入站连接将在所有已绑定的服务器套接字之间分配。可以通过这种方式在多个isolate之间分配连接。
实现
static Future<ServerSocket> bind(address, int port,
{int backlog = 0, bool v6Only = false, bool shared = false}) {
final IOOverrides? overrides = IOOverrides.current;
if (overrides == null) {
return ServerSocket._bind(address, port,
backlog: backlog, v6Only: v6Only, shared: shared);
}
return overrides.serverSocketBind(address, port,
backlog: backlog, v6Only: v6Only, shared: shared);
}