我在服务器上安装了多个 NIC(网络接口)。我可以在 JAVA 中为现有客户端套接字设置默认本地绑定地址吗?
可以通过以下方法以编程方式执行此操作:
new Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
问题是我无权访问 SocketFactory 所以我不能指定 localAddr 值。
我在服务器上安装了多个 NIC(网络接口)。我可以在 JAVA 中为现有客户端套接字设置默认本地绑定地址吗?
可以通过以下方法以编程方式执行此操作:
new Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
问题是我无权访问 SocketFactory 所以我不能指定 localAddr 值。
您在问题中提到的抽象SocketFactory.createSocket()
方法的文档指向提供您需要的构造函数;
public Socket.Socket(InetAddress address,
int port,
InetAddress localAddr,
int localPort)
throws IOException
如果您需要更改现有套接字的 localAddress,您应该使用该bind(SocketAddress bindpoint)
方法,但是IOException
如果套接字已经绑定,则会抛出一个。
您应该将 an作为抽象传递InetSocketAddress
给该方法。SocketAddress
如果您在查找每个接口的内部 IP 地址时遇到问题,本指南将说明如何检索它们的集合。