java - 在java中设置客户端套接字的本地绑定(bind)地址

标签 java sockets network-programming

我在服务器上安装了多个 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

Docs found here

<小时/>

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

您应该传递 InetSocketAddress将该方法设置为 SocketAddress是抽象的。

<小时/>

如果您无法找到每个接口(interface)的内部 IP 地址 this指南解释了如何检索它们的集合。

关于java - 在java中设置客户端套接字的本地绑定(bind)地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18271042/

相关文章:

java - 尝试将多个字符串解析为 1 个字符串

java - Android 如何通知我照片已被捕获

python - 使用 python 连接到 flask websocket

c++ - 连接错误 : Invalid argument at sockets

linux - 使用 libpcap 加入/离开多播组

java - Solr 8.3.1 : could not find or load org. apache.solr.util.SolrCLI

java - 向 LDAP 服务器代理 HTTP 摘要认证请求

node.js - 当 FreeSWITCH Node esl 服务器已桥接到另一个端点时,以编程方式在 FreeSWITCH Node esl 服务器内传输调用

sockets - 需要更多关于 listen system call linux 的见解

python - 监控模式下的 Scapy 嗅探