- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么我们必须创建一个InetSocketAddress
对象?
但是对于ServerSocket
,我们只需使用int
来输入端口号
示例:
try(
ServerSocketChannel listener = ServerSocketChannel.open();
ServerSocket serverSocket = listener.socket()
){
serverSocket.bind(new InetSocketAddress(2266));
//we can't use serverSocket.bind(2266);
}catch (IOException e){
e.printStackTrace();
}
最佳答案
你的问题有点不清楚。
ServerSocket#bind()
建立连接的本地端。如果您的系统有多个网络适配器和/或多个 IP 地址,并且您想使用特定的本地适配器或 IP 地址连接套接字,那么您需要提供完整的 InetSocketAddress(host,port)
包含主机和端口,其中主机部分是您的本地 IP 地址之一。
在默认情况下,您只有一个 IP 地址,或者有多个 IP 地址但不关心哪一个用作源,您可以省略主机并仅指定端口,如示例中所示。
API 是这样定义的。 TCP 连接是对称的,并由其两个端点定义。端点是一对(主机,端口)。这适用于连接的两端。因此,bind()
调用采用一个 InetSocketAddress
参数。为了方便起见,如果您仅提供端口,InetSocketAddress
将采用指定“使用任何可用接口(interface)”的默认主机。
API 设计者可以添加一个 bind(int port)
方法来在幕后构建 InetSocketAddress(port)
,但显然觉得没必要。
关于java - 为什么我们必须使用 InetSocketAddress 来输入我们的端口号才能使用 ServerSocketChannel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35389411/
有没有办法将字符串参数传递给 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 和“字
我是一名优秀的程序员,十分优秀!