我在服务器上安装了多个 NIC(网络接口(interface))。我可以为 JAVA 中现有的客户端套接字设置默认的本地绑定(bind)地址吗?
可以通过以下方法以编程方式完成此操作:
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
<小时/>
如果您需要更改现有套接字的本地地址,您应该使用 bind(SocketAddress bindpoint)
方法,但是如果套接字已经绑定(bind),则会抛出IOException
。
您应该传递 InetSocketAddress
将该方法设置为 SocketAddress
是抽象的。
如果您无法找到每个接口(interface)的内部 IP 地址 this指南解释了如何检索它们的集合。
关于java - 在java中设置客户端套接字的本地绑定(bind)地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18271042/