неблокирующие сокеты
От: Pom  
Дата: 18.07.03 04:05
Оценка:
Явялется ли нормальной следующая техниа работы с сокетами -- использовать неблокирующие сокеты,
с нотификациями на ивентах, при это перед каждой функцией чтения --

WSAEventSelect(connectionSocket,event,FD_READ|FD_CLOSE);
WSAEventReset(event);
...
while(....)
{

int size=recv(...);
if(WSAGetLastError()==WSAEWOULDBLOCK)
{
// ждемс перехода event(для слкета) или другого exitEvent(сигнал экстренного окончания операции -- устанавливается вручную из другого потока)

}
}

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