Re: Использование WaitFor...Object() для сокетов
От: c-smile Канада http://terrainformatica.com
Дата: 31.03.03 17:15
Оценка: 3 (1)
Здравствуйте, osi, Вы писали:

osi>Проблема — в нити нужно ждать одновременно события с сокетов и изменения синхронизацирнных объектов. WaitFor... -функции принимают аргументами только HANDLE, select — только к сокетам, как ждать и того и того сразу?

osi>П.С.: MFC не используется.

osi>


Примерно так:


WSAOVERLAPPED overlapped;
...
overlapped.hEvent = CreateEvent(...);

WSASend(s, ... &overlapped,..);

MsgWaitForMultipleObjects(... , &overlapped.hEvent,...);



Успехов.
Re: Использование WaitFor...Object() для сокетов
От: vasketsov Россия http://ntprog.by.ru
Дата: 01.04.03 03:52
Оценка: 3 (1)
Здравствуйте, osi, Вы писали:

Все стандартные низкоуровневые поставщики MS — это IFS-поставщики.
Потому сокет — это реальный хэндл (на \Device\Tcp, \Device\Udp, \Device\Afd\, \Device\Ip и т.п.).
Поэтому их также можно использовать в тех местах, где нужен хэндл.
Васкецов Сергей
http://registry.km.ru
Использование WaitFor...Object() для сокетов
От: osi  
Дата: 31.03.03 15:52
Оценка:
Проблема — в нити нужно ждать одновременно события с сокетов и изменения синхронизацирнных объектов. WaitFor... -функции принимают аргументами только HANDLE, select — только к сокетам, как ждать и того и того сразу?
П.С.: MFC не используется.


31.03.03 20:14: Перенесено модератором из 'C/C++' — ПК
Re[2]: Использование WaitFor...Object() для сокетов
От: Alex Fedotov США  
Дата: 01.04.03 04:01
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Все стандартные низкоуровневые поставщики MS — это IFS-поставщики.

V>Потому сокет — это реальный хэндл (на \Device\Tcp, \Device\Udp, \Device\Afd\, \Device\Ip и т.п.).
V>Поэтому их также можно использовать в тех местах, где нужен хэндл.

Это верно до тех пор, пока используется реализация WinSock от Microsoft. Хотя, вряд ли кто-то в здравом уме будет делать сейчас альтернативную реализацию.

С другой стороны, использование overlapped i/o, как уже отмечено, позволяет реализовать поставленную задачу не прибегая к сокровенному знанию и оставаясь в рамках спецификации WinSock, поэтому лично я рекомендую именно этот способ.
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.