Node.js 指定TCP套接字客户端连接的本地端口

Node.js 指定TCP套接字客户端连接的本地端口,node.js,Node.js,如何使用node.js为出站TCP连接指定源端口/本地端口?这是支持某些防火墙规则所必需的 net.connect({port: PORT, host: HOST}, callback) 我希望在上述调用中有一个额外的参数'localPort'。但是看起来API没有处理,下面的代码也不起作用 net.connect({port: PORT, host: HOST, localPort: 12345}, callback) 使用Java,我希望做到以下几点: Socket s = new So

如何使用node.js为出站TCP连接指定源端口/本地端口?这是支持某些防火墙规则所必需的

net.connect({port: PORT, host: HOST}, callback)
我希望在上述调用中有一个额外的参数'localPort'。但是看起来API没有处理,下面的代码也不起作用

net.connect({port: PORT, host: HOST, localPort: 12345}, callback)
使用Java,我希望做到以下几点:

Socket s = new Socket();
s.bind(new InetSocketAddress("179.11.123.102", 5000));
s.connect(new InetSocketAddress("178.1.2.102", 1234));

node.js中的等效功能是什么?

根据错误报告“”,最近添加了以下功能:

目前,net.connect有一个参数localAddress,但它也应该有一个localPort

只是还没有发布。。。[it]应包含在v0.11.13中


它是在2月17日添加的,应该在Node的下一个版本中提供。如果你不能等待,你可以直接将DIFF贴入0.1031,它应该是因为支持端口参数(补丁只是增加了JavaScript层使用C++参数)。套接字不能同时用于侦听和连接。这不是说,指定出站连接的本地端口OK。你试过什么?这是一个很好的文档。看起来你不理解这个问题…同样,这是关于本地端口的,我们通常不会指定为操作系统自动选择的端口。如果您认为链接有文档记录,最好提及链接,如果您知道,最好回答这个问题。@奇怪的是,当操作系统的TCP代码进行出站连接时,出站连接必须具有远程端口(例如,端口80或HTTP)和本地源端口(默认情况下,随机分配的高编号端口)。我想OP想知道如何手动指定传出TCP连接的本地端口。谢谢。如果建议将此修补程序修补到最新的稳定版本中,有什么建议吗?我还看到只有js文件发生了变化。我相信应该也有C++文件的修改。这些文件是分开跟踪的吗?@PhaniKumar如果出现问题,我不承担责任(
:P
),但是,是的,看起来你可以把它推到当前版本中。我认为
self.\u handle.bind
指的是一些C网络功能
bind
,它可以接受地址和端口。Node以前使用了只包含地址的变量,但它可能已经使用了一个端口参数(Node根本没有使用该参数)。@PhaniKumar确认:the(在该补丁中用作
self.\u handle.bind
)支持端口号作为第二个参数:
int port=args[1]->Int32Value()