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

如何使用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()应该接受一个本地端口选项 ”,该function最近添加:

目前,net.connect有一个参数localAddress,但它也应该有一个本地端口…

它只是还没有发布… [它]应该包含在v0.11.13

它在2月17日的这个提交中被添加了,并且应该在Node的下一个版本中可用。 如果你不能等待,你可以直接在0.10.31中打补丁,它应该是原样的,因为0.10.31版本时的C ++ Bind函数支持一个端口参数(补丁只是增加了JavaScript层使用该C ++参数)。