php сокет xinetd UDP - fwrite STDOUT errno 89 - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть простой xINETd UDP-сервис, написанный на PHP - в основном, действующий как прокси-сервер - но когда я пытаюсь написать ответ с помощью fwrite(STDOUT, $ans);, я получаю интересную ошибку:

PHP Notice:  fwrite(): send of 244 bytes failed with errno=89 Destination address required in ...

Так как это xinetd, который делает сокет и связывает его с PHP stdin / stdout, я заблудился по поводу этой проблемы. (простое «эхо» не выдает сообщение об ошибке, но ответный пакет также не отправляется обратно)

1 Ответ

0 голосов
/ 24 апреля 2020

xinetd "feature" :( при работе с UDP вы должны рассматривать stdin / stdout как сокет (и использовать для него getpeername ()), чтобы иметь возможность отвечать ... вам нужно настроить отвечающий сокет на основе входных данных (с UDP - с TCP он, вероятно, будет работать с простым 'echo')

...