Задать вопрос
@PavelG94

Почему автоматически переопределяется номер порта для вручную добавленной записи в /etc/services?

Здравствуйте.
Добавил в /etc/services две записи: my-chat 5296/tcp и my-chat 5296/udp. При вызове функции getservbyname("my-chat", "tcp") запись находится, но порт у нее значится 45076. Подскажите, почему так происходит. Номер порта 5296 больше нигде в /etc/services не встречается.
Спасибо.
  • Вопрос задан
  • 259 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Shetani
/etc/services не используется для назначения портов. Тут описание зачем он нужен.
Чтобы запустить приложение на определенном порту, у него должна быть такая опция -
myservice -port 8008
например.
Ответ написан
Комментировать
@PavelG94 Автор вопроса
Проблему решил. Всё работает верно, фукнция getservbyname() возвращает структуру, в которой номер порта записан в сетевом порядке следования байт. Чтобы получить то значение, которое стоит в файле /etc/services, нужно к номеру порта в этой структуре применить функцию ntohs().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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