Как решить, что входящее соединение от локальной машины

При использовании Leopard (и новая Сборка "мусора" Какао), Вы также хотите смотреть на NSMapTable.

8
задан Mohsen 9 October 2009 в 07:51
поделиться

3 ответа

Если вы хотите ограничить соединения с локального хоста, укажите это при открытии ServerSocket. Если вы слушаете только локальный хост, вы будете получать соединения только с локального хоста.

    int port = .....
    SocketAddress socketAddress = new InetSocketAddress("127.0.0.1", port);
    ServerSocket serverSocket = new ServerSocket();
    serverSocket.bind(socketAddress);
    serverSocket.accept();
7
ответ дан 5 December 2019 в 07:59
поделиться

InetAddress.getByName( null ) always returns the loopback address. See the javadoc

    int port = .....
    SocketAddress socketAddress =
        new InetSocketAddress( InetAddress.getByName( null ), port);
    ServerSocket serverSocket = new ServerSocket();
    serverSocket.bind(socketAddress);
    serverSocket.accept();
11
ответ дан 5 December 2019 в 07:59
поделиться

Thanks skaffman. The following code worked with a little manipulation (hard-coding 127.0.0.1).

int port = .....
SocketAddress socketAddress = new InetSocketAddress("127.0.0.1", port);
ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(socketAddress);
serverSocket.accept();

If I read local address from InetAddress.getLocalHost(), other network users on the same subnet are still able to see my server.

Mohsen.

3
ответ дан 5 December 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: