首页 > 解决方案 > 如何在 Dart 中定义传出 TCP 套接字的源端口

问题描述

我想建立一个 TCP 连接sourceAddress:x-> host:port,如何x在 dart 中设置?

文档仅描述Socket.connect(dynamic host, int port, {dynamic sourceAddress, Duration? timeout}了无法定义本地端口的地方x

在此处将端口附加到sourceAddress变量会引发无效地址错误。也不RawSocket接受本地端口参数。我这里不想使用ServerSocket,因为我实际上需要定义双方的端口。据我了解,这仅在 UDP 'connections' 的 dart 中受支持:

var s = await RawDatagramSocket.bind(
        sourceAddress, x,
        reusePort: true);
s.send(...)

至少在 python 中这是可能的(来自https://idea.popcount.org/2014-04-03-bind-before-connect/),它被称为 bind-before-connect。

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(sourceAddress, x)
s.connect(host, port)

你知道在飞镖中是否以及如何实现类似的结果?

标签: dart

解决方案


推荐阅读