![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WSAWaitForMultipleEvents для однонитевого сервера [D6, XP]
Евгений07 © (2011-09-09 16:14:00)Уважаемые дельфийцы!
Есть ли примеры использования WSAWaitForMultipleEvents для запуска процедуры приема и обработке данных однонитевым сервером от единственного клиента ( WinSock2 )
Событие об отправке данных серверу через PostMessage, были случаи, терялись.
Номер сообщения получен из RegisterWindowMessage.
Возможно, клиент и сервер будут на разных компах, тогда PostMessage отпадает.
Заводить процесс только для WSAWaitForMultipleEvents для единственного клиента сервера не хочется, нет практики, потребности и времени.
Как вариант есть еще таймер
Где посоветуете копать?
Евгений07 (2011-09-09 18:51:00) [41]Сергей М.
Ясно что WSAWaitForMultipleEvents это поток.
В моей ситуации поток = грабли, на которые я наступлю.
+ выделение из большой однопоточной и много раз переработанной проги куска в поток сервера не вызывает энтузиазма.
Остается:
1. хитромудрое использование WSAWaitForMultipleEvents без потока помимо справки
2. Событие таймера с переменным временем.
3. Чюдо = то чего не знаю, но очень нужное и простое
Искать кто мог сожрать PostMessage или ковырять WSAasyncselect из-за возможности разноса клиента и сервера по разным компам тоже не вдохновляет
Сергей М. (2011-09-09 18:01:00) [42]После чтения справки что-то непонятно в параметрах и логике работы WSAWaitForMultipleEvents ?
Евгений07 (2011-09-09 17:58:00) [43]Юрий!
С потоком я знаком теоретически, а запускать в объемные проги вещь не подробно изученную - грабли знакомые.
Нужна простая вещь.
Как последний вариант сейчас прорабатываю таймер с переменным временем.
Прогнозируемое время поступления инфы от клиента есть.
Запрос клиенту идет после проглота сервером инфы клиента.
Хотелось бы простой обработчик события, сервер с окном
Юрий Зотов (2011-09-09 17:14:00) [44]Так ведь ничто не мешает создать поток - и пусть себе ждет. Только обязательно с таймаутом и с проверкой флага завершения - чтобы поток, взаимодействующий с SCM, мог выставить этот флаг и тем самым корректно завершить работу сервиса.