Проблема - есть команды (Перл, любимый), про которые говорится, что они аналогичны системным вызовам в Юниксе и более ничего. Часть я вроде разобрал... Но все-таки возник затуп.
Надо слушать два сокета и в случае, если что-то пришло в один из них, сразу (ключевое слово - сразу) обрабатывать. Опрашивать сокеты по очереди - не прокатит, т.к. опрос равносилен чтению из него. а если там пусто, то "читать, пока не появится", что (разумеется) никуда не годится.
Соответственно интересует следующая вещь - есть ли какие-либо системные вызовы, проверяющие состояние сокета? Чтобы проверил и если пусто, то едем дальше.
Вариант два - реализовать сие через два разных процесса. Но можно ли тогда двум разным процессам дать одни и те же сокеты (ибо обработка включает в себя пересылку во второй сокет)?
И не будет ли тогда проще вариант три - посадить на каждый из сокетов по процессу, а третьим обрабатывать идущие от них ... слова? Но это уже три процесса. Третий вариант я (теоретически) реализовать смогу, поскольку опрос потока получается (команда -s в Перле. Почему она не работает с сокетами - понятия не имею). Хотя опять-таки затык - надо опрашивать поток и сокет
Вобщем... Задача из красивых, приятных и полезных. Надо будет выбить свой Кэмел из человека, его экспроприировавшего...