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