Явялется ли нормальной следующая техниа работы с сокетами -- использовать неблокирующие сокеты,
с нотификациями на ивентах, при это перед каждой функцией чтения --
int size=recv(...);
if(WSAGetLastError()==WSAEWOULDBLOCK)
{
// ждемс перехода event(для слкета) или другого exitEvent(сигнал экстренного окончания операции -- устанавливается вручную из другого потока)
}
}
то есть перед каждой операцией чтения подписываться на нотификацтю о чтении, перед операцией записи подписываться на запись. (не является ли эта операция накладной?)
в резултате получается что то вроде блокирующих сокетов с таймаутом + возможность быстро прекратить операцию из другого потока.