• Реклама


Низкоуровневое программирование сокетов

Разработка и Написание программ, вопросы, идеи...

Низкоуровневое программирование сокетов

Сообщение Aragaer 18 фев 2004 20:13

Проблема - есть команды (Перл, любимый), про которые говорится, что они аналогичны системным вызовам в Юниксе и более ничего. Часть я вроде разобрал... Но все-таки возник затуп.

Надо слушать два сокета и в случае, если что-то пришло в один из них, сразу (ключевое слово - сразу) обрабатывать. Опрашивать сокеты по очереди - не прокатит, т.к. опрос равносилен чтению из него. а если там пусто, то "читать, пока не появится", что (разумеется) никуда не годится.

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

Вобщем... Задача из красивых, приятных и полезных. Надо будет выбить свой Кэмел из человека, его экспроприировавшего...
Open your eyes.
And Awaken.
Аватара пользователя
Aragaer
Склеротик.
Склеротик.
 
Сообщения: 113
Зарегистрирован: 28 сен 2003 19:32
Откуда: From Dreaming.

Реклама

Сообщение Aragaer 19 фев 2004 16:59

Вопрос снят. Используем IO::Select вместе с IO::Socket и вуаля...
Open your eyes.
And Awaken.
Аватара пользователя
Aragaer
Склеротик.
Склеротик.
 
Сообщения: 113
Зарегистрирован: 28 сен 2003 19:32
Откуда: From Dreaming.

Сообщение SLAY`ee`K 25 фев 2004 03:18

Умница!
Аватара пользователя
SLAY`ee`K
Модератор
Модератор
 
Сообщения: 125
Зарегистрирован: 07 окт 2003 20:57
Откуда: Виннипег (Манитоба, Канада)

Сообщение Aragaer 25 фев 2004 08:52

Сейчас нахожусь в очередном затыке по этому поводу - состояние сокета я проверить уже могу, а вот состояние консоли - никак. Тут уж точно придется опрос консоли в отдельный подпроцесс выносить... Да здравствует ipc!
Open your eyes.
And Awaken.
Аватара пользователя
Aragaer
Склеротик.
Склеротик.
 
Сообщения: 113
Зарегистрирован: 28 сен 2003 19:32
Откуда: From Dreaming.


Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


  • Реклама
cron