Java ServerSocket. Почему IP-адрес 0.0.0.0, но я все еще могу подключиться удаленно? - PullRequest
2 голосов
/ 13 января 2011

Теперь я хочу подключиться удаленно, я просто хочу знать, почему сервер сообщает, что у него нет IP-адреса.

Server started: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=13380]

Соответствующий код:

private ServerSocket        serverSocket    = null;
private Thread              thread          = null;
private int                 clientCount     = 0;

/**
 * Constructor
 * 
 */
public ControlListener(int port)
{
    try
    {
        System.out.println("Binding to port " + port + ", please wait  ...");
        this.serverSocket = new ServerSocket(port);
        System.out.println("Server started: " + this.serverSocket);
        start();
    }
    catch (IOException ioe)
    {
        System.out.println("Can not bind to port " + port + ": " + ioe.getMessage());
    }
}

по ссылке: http://pirate.shu.edu/~wachsmut/Teaching/CSAS2214/Virtual/Lectures/chat-client-server.html Пример 4 - это то, что я следовал

Ответы [ 3 ]

6 голосов
/ 13 января 2011

Вы привязаны к любому адресу, что означает, что вы слушаете на всех интерфейсах. Вы можете принимать соединения, которые приходят с любого определенного интерфейса на сервере, включая localhost и любые IP-адреса, которые вы определили в случае, если вы используете несколько компьютеров.

Вы можете привязаться только к 127.0.0.1 и принимать соединения только от localhost. Вы можете привязаться к определенному IP-адресу и принимать соединения только на этом интерфейсе.

1 голос
/ 13 января 2011

0.0.0.0 Означает, что все ips используются.Если вы пытаетесь подключиться удаленно, убедитесь, что вы открыли порт, который используете в брандмауэре и / или маршрутизаторе.

0 голосов
/ 13 января 2011

Это подстановочный знак, указывающий, что ваш сокет будет принимать запросы на каждый сетевой адаптер вашего хоста.

Вы можете ограничить это поведение, определив выделенный сетевой адрес при создании.

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