1

我在服务器上安装了多个 NIC(网络接口)。我可以在 JAVA 中为现有客户端套接字设置默认本地绑定地址吗?

可以通过以下方法以编程方式执行此操作:

new Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

问题是我无权访问 SocketFactory 所以我不能指定 localAddr 值。

4

1 回答 1

1

您在问题中提到的抽象SocketFactory.createSocket()方法的文档指向提供您需要的构造函数;

 public Socket.Socket(InetAddress address,
     int port,
     InetAddress localAddr,
     int localPort)
         throws IOException

在这里找到的文档


如果您需要更改现有套接字的 localAddress,您应该使用该bind(SocketAddress bindpoint)方法,但是IOException如果套接字已经绑定,则会抛出一个。

您应该将 an作为抽象传递InetSocketAddress给该方法。SocketAddress


如果您在查找每个接口的内部 IP 地址时遇到问题,指南将说明如何检索它们的集合。

于 2013-08-16T10:23:58.643 回答