[РЕШЕНО] Не работает сервис echo
Начал изучать программирование сокетов и в некоторых примерах программ стоит условие использовать сервис echo по UDP, тот, что на 7-ом порту. Установил xinetd, в /etc/xinetd.d/echo-dgram и echo-stream поменял disable = yes на disable = no, запустил xinetd(/etc/init.d/xinetd start). netstat -tulpn выдает:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:7 0.0.0.0:* LISTEN 10238/xinetd tcp 0 0 127.0.0.1:6600 0.0.0.0:* LISTEN 3765/mpd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3754/pure-ftpd (SER tcp6 0 0 ::1:6600 :::* LISTEN 3765/mpd tcp6 0 0 :::21 :::* LISTEN 3754/pure-ftpd (SER udp 0 0 0.0.0.0:7 0.0.0.0:* 10238/xinetd
Программа UDP-клиент в конце страницы здесь - Пример программы UDP-клиента
Запускаю программу так:
./client 192.168.1.2
Вывод ifconfig:
enp3s0: flags=4163mtu 1500 inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::ca60:ff:fec3:ea2 prefixlen 64 scopeid 0x20 ether c8:60:00:c3:0e:a2 txqueuelen 1000 (Ethernet) RX packets 117197 bytes 125208356 (119.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 100198 bytes 12859411 (12.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ...
В итоге, программа ожидает возврата из recvfrom вечно.
При этом, когда я запускаю "свой echo сервис" на порту 51000, вышеописанный echo-клиент, с изменением порта, конечно, работает нормально.
Подскажите, что я еще забыл сделать, чтобы работал стандартный echo-сервис?
UPD: с TCP сокетом echo другая проблема - при вызове connect(пример здесь) выкидывает с такой ошибкой
[ECONNREFUSED] The target address was not listening for connections or refused the connection request. (POSIX)
Но если в UDP echo пометка LISTEN не стоит в выводе netstat, то здесь присутствует:
tcp 0 0 0.0.0.0:7 0.0.0.0:* LISTEN 10238/xinetd
- Для комментирования войдите или зарегистрируйтесь
xinetd сам по себе ничего не
xinetd
сам по себе ничего не обрабатывает - это простоwrapper
, он перенаправляет запросы обслуживающий программе. Т.е. проверьте, конфигурациюxinetd
и программы, которые он вызывает.Так же проверьте
Вопрос вижу. Тема помечена
Вопрос вижу.
Тема помечена решённой.
А собственно решение где?
:wq
--
Live free or die