При подключении к сокету Java почему getInetAddress () возвращает / 0: 0: 0: 0: 0: 0: 0: 1? - PullRequest
2 голосов
/ 10 октября 2019

Я подключаюсь через MS Telnet, где я вижу вывод.

Я знаю, 0: 0: 0: 0: 0: 0: 0: 0 будет ВСЕМ или подстановочным знаком ... но при чем тут 0: 0: 0: 0: 0: 0: 0: 1?

Какой смысл давать мне это? Почему бы не дать мне IP-адрес, например 127.0.0.1?

Это виртуальный MAC-адрес? Javadoc не был очень информативным.

public InetAddress getInetAddress () Возвращает адрес, к которому подключен сокет. Если сокет был подключен до закрытия, этот метод будет продолжать возвращать подключенный адрес после закрытия сокета.

Возвраты: удаленный IP-адрес, к которому подключен этот сокет, или ноль, если сокетне связан. От https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#getInetAddress()

ГЛАВНАЯ:

public static void main(String[] args) throws IOException {
/*
        * The actual work of the server socket is performed by an instance
        * of the {@code SocketImpl} class.
*/

        // Open a port to accept connections on 8080
        ServerSocket srvrSocket = new ServerSocket(8080);

        // Block until someone connects
        while (true) {

            Socket socket = srvrSocket.accept();

            handle(socket);
        }
    }


    private static void handle(Socket socket) throws IOException {

        try(
                socket;
                InputStream is = socket.getInputStream();
                OutputStream os = socket.getOutputStream();
                ) {

            // Print welcome
            DataUtil.writeStringAsInts(os, socket.getInetAddress().toString());
.
.
.

1 Ответ

3 голосов
/ 11 октября 2019

IPV6 имеет представление 0:0:0:0:0:0:0:1 для локального хоста, когда мы пытаемся подключить серверный сокет из локального, мы можем получить 0:0:0:0:0:0:0:1, иногда мы можем получить ::1

Localhost (loopback)адрес, 0: 0: 0: 0: 0: 0: 0: 1, и неопределенный адрес IPv6, 0: 0: 0: 0: 0: 0: 0: 0, сокращаются до :: 1 и ::,соответственно https://en.wikipedia.org/wiki/IPv6_address

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...