Re[5]: А будуть ли на Линуксе работать асинхронные сокеты?
От: Willi  
Дата: 10.12.02 12:28
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>Гм. тут основная задача такая: в любой момент иметь возможность послать данные и получить.

G>Т.е. буду я ждать приема данных, (при этом еще не факт, что мне их пошлют).
G>И тут по логике программы парралельно надо мне надо будет сенд сделать... конечно можно по таймауту в цикле к примеру крутить селект ентот... но неужели по красивше никак сделать нельзя?

Самая обычная задача. Главное определиться откуда поступает сигнал о том, что нужно отправлять данные.

Смысл в том, что ты должен одновременно ждать и приема данных и сигнала на отправку. Если сигнал поступает не через дескриптор, который можно затолкать в select. То можно сделать отдельный поток который ожидает этого сигнала. А для обмена даннымим между потоками использовать pipe. Тогда ты можешь ждать одновременно данных и на сокете и на pipe, если сработал сокет — принимаешь, если pipe — отправляешь. Идея понятна?
\/\/i||i
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.