为TCP套接字客户端连接指定本地端口

时间:2014-09-03 10:58:24

标签: 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 Socket();
s.bind(new InetSocketAddress("179.11.123.102", 5000));
s.connect(new InetSocketAddress("178.1.2.102", 1234));

node.js中的等价物是什么?

1 个答案:

答案 0 :(得分:5)

根据错误报告“net.connect() should accept a localPort option”,最近添加了该功能:

  

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

     

它尚未发布...... [它]应该包含在v0.11.13

它于2月17日在this commit中添加,并且应该在Node的下一个版本中提供。如果您不能等待,可以将diff直接修补到0.10.31,它应该按原样运行,因为C++ Bind function at the time of the 0.10.31 release支持端口参数(补丁只是将JavaScript层扩充为 use < / em>那个C ++参数)。