【问题标题】:Does AsynchronousServerSocketChannel.bind() always need "localhost"?AsynchronousServerSocketChannel.bind() 是否总是需要“localhost”?
【发布时间】:2015-03-26 10:06:58
【问题描述】:

我正在研究 Java 套接字。有一个名为“AsynchronousServerSocketChannel”的类

它有一个名为“bind”的方法。该方法需要一个“参数”,即“SocketAddress”。

我发现所有关于 "SocketAddress" 对象的例子都是 "new InetSocketAddress("127.0.0.1",8000)" 或 new InetSocketAddress("localhost",8000),

我想问:“我们使用其他ip地址有什么不同的情况,例如'192.168.1.100'?如果没有,为什么我们必须始终将其放入方法中。它应该有一个默认值一个。

【问题讨论】:

    标签: java sockets io


    【解决方案1】:
    • 如果您希望服务器仅侦听该地址,您可以使用任何其他本地 IP 地址。
    • 更一般的情况是使用null,或省略参数,对应INADDR_ANY,,表示接受通过任何本地IP地址的连接。

    【讨论】:

    • 你的意思是如果我用那个参数,比如“127.0.0.1”,8000,那么如果客户端想连接“192.168.1.100”,8000,就不能连接?
    猜你喜欢
    • 2013-03-08
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2021-06-25
    • 2011-01-22
    相关资源
    最近更新 更多