Портирование сокет-программы на Mac с ПК и получение разрешения, запрещенного при создании сокета - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь перенести свой проект на mac с компьютера.При выполнении

server = new ServerSocket(80);

возникает исключение, говорящее о том, что разрешение отклонено.Я вхожу как администратор.

Ответы [ 3 ]

4 голосов
/ 27 октября 2011

На всех основных ОС, кроме Windows, вы не можете привязаться к порту 80, если вы не являетесь пользователем root. Не только пользователь с правами администратора - root.

На Mac порт 80 также может уже использоваться встроенным веб-сервером (Apache), если он включен.

0 голосов
/ 27 октября 2011

Сообщение «В доступе отказано» означает, что у вашего пользователя нет необходимых разрешений для привязки сокета к этому порту.В ОС на основе Unix порты ниже 1024 могут быть связаны только пользователем root.Вероятно, подобное ограничение распространяется и на Windows - есть ли у вашего пользователя Windows права администратора?

Если у вашего пользователя есть разрешения, и на порту 80 запущена другая служба, например Apache, вы получите «Адрес».сообщение уже используется.

0 голосов
/ 27 октября 2011

Вероятно, есть ограничение на использование этого порта. Попробуйте запустить его с необычным номером порта .

Также попробуйте это, чтобы проверить, какие порты доступны для правильного использования или нет:

ServerSocket serversocket = null;

    try {
        serversocket = new ServerSocket(i);
        serversocket.close();
        System.out.println(i + " Available");
    } catch (BindException ex) {
        System.out.println(i + " Unavailable");
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...