- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想要实现的目标
将服务器绑定(bind)到临时端口以进行单元测试。
我的问题:
使用 1.5.0_22 JDK,我尝试按照 javadoc 使用端口 0 将 InetSocketAddress 绑定(bind)到一个临时端口上,但我无法从地址对象中找到一种方法来知道它绑定(bind)到哪个端口,所以我不能对我的客户进行相应配置:
InetSocketAddress address = new InetSocketAddress(0);
assertThat(address.isUnresolved(), is(false));
assertThat(address.getPort(), is(0));
我可能没有正确理解 javadoc 语句:
A valid port value is between 0 and 65535. A port number of zero will let the system pick up an ephemeral port in a bind operation.
但是即使在我的服务器监听套接字之后检查端口(我假设绑定(bind)已经发生)也不会返回任何其他内容,但 0(以下使用 http://simpleweb.sourceforge.net/ 库):
Container httpServer = new Container() {
public void handle(Request req, Response resp) {
}
};
SocketConnection connection = new SocketConnection(httpServer);
InetSocketAddress address = new InetSocketAddress(0);
connection.connect(address);
assertThat(address.isUnresolved(), is(false));
assertThat(address.getPort(), is(0));
使用 nmap 我什至没有看到绑定(bind)端口,所以我假设我的理解是不正确的。有帮助吗?
最佳答案
最初包含端口 0 的 InetSocketAddress
不会被 connect()
更新以表示绑定(bind)到的实际端口。调用 connection.getLocalPort()
或 ((InetSocketAddress)connection.getLocalSocketAddress()).getPort()
获取绑定(bind)端口。
关于java - java InetSocketAddress 绑定(bind)到哪个临时端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8344357/
有没有办法将字符串参数传递给 InetSocketAddress 的参数? 这是生成代理的正确方法: SocketAddress addr = new InetSocketAddress("127.0
我正在尝试填充主机 header 。我已经为我的示例插入了虚拟数据,但我想知道我是否正确填充了该数据。当检查地址的值时,它似乎与我的预期不同。我期望 [域名]:[端口],但我看到 [域名]/[IP 地
我有以下代码: socket.connect(new InetSocketAddress(serverHost, serverPort), CONNECT_TIMEOUT); 问题是当 DNS 不可访
在构造函数的文档中 InetSocketAddress(int port)它说: Creates a socket address where the IP address is the wildca
谁能解释一下 InetAddress 之间有什么区别吗?和 InetSocketAddress java中的类,如果有差异,请解释相同。我用谷歌搜索了它,但找不到任何解释。 最佳答案 InetAddr
我在与主机名中带有重音符号 (é è ô...) 的服务器建立连接时遇到问题。 例如: String oUrl = "www.hôtel.fr"; System.out.println(oUrl)
我需要为 InetSocketAddress 编写 Comparator,这样我就可以在 TreeSet 中使用此类。它们需要通过地址和端口进行比较。 代码看起来像这样,但问题是我不知道如何通过 (1
为什么我们必须创建一个InetSocketAddress对象? 但是对于ServerSocket,我们只需使用int来输入端口号 示例: try( ServerSocketChanne
我进行了很多搜索,但无法找到两者之间的直接区别。在创建客户端套接字时,我们什么时候使用每一个? 最佳答案 InetSocketAddress 不以任何方式管理 Socket。 我认为你的意思是 Soc
我正在 InetSocketAddress 上执行 .toString()。这是 Android websocket 客户端的一部分,迄今为止无法连接到主机。 现在变量 address.toStrin
首先:我对 Spring 非常陌生,因此,如果我未能提供该问题所需的所有信息,我很抱歉。我的问题如下:我有以下类,我想将哪些对象保存在 mongoDB 中 public class Subscript
这是我尝试过的: @Test public void local_host_test() { InetAddress inetAddress = Mockito.mock(InetAddres
我正在使用一个使用开源 java 库 (Calimero) 的 Android 应用程序。我的代码尝试使用以下代码获取主机名和端口: private static KNXNetworkLinkIP c
我想要实现的目标 将服务器绑定(bind)到临时端口以进行单元测试。 我的问题: 使用 1.5.0_22 JDK,我尝试按照 javadoc 使用端口 0 将 InetSocketAddress 绑定
我想创建一个 InetSocketAddress,但无论我得到的是 host:port 还是 ip:port,我都想正确地创建它。我看到它有两个构造函数,一个用于主机 (String),另一个用于 I
当我启动通过elasticsearch java api 与ElasticSearch 5.6.10 交互的java 应用程序并且我的elasticsearch 集群有超过1 个节点时,我收到以下异常
我正在寻找 ipv4 和 ipv6 的测试正则表达式 InetSocketAddress (即 IP 地址 + 端口号)。我对验证主机名不感兴趣。 它可以是两个正则表达式(一个用于 ipv4,一个用于
我正在尝试以字符串形式获取套接字连接的 IP。 我正在使用一个框架,它返回接收到的消息的 SocketAddress。我如何将其转换为 InetSocketAddress 或 InetAddress?
我需要有效地确定 InetSocketAddress 是 IPv6 还是 IPv4。我能看到的唯一两种方法是使用 instanceof 运算符,或者检查 getAddress() 的长度(应该返回一个
Java 中验证 host:port 形式的字符串并将其转换为 InetSocketAddress 实例的常用方法是什么? 如果满足以下条件就好了: 没有地址查找; 适用于 IPv4、IPv6 和“字
我是一名优秀的程序员,十分优秀!