inline int sockRead (sockType s,void* data,int len
,sockaddr* addr=nullptr,socklen_t* fromLen=nullptr){
int r=::recvfrom(s,static_cast(data),len,0,addr,fromLen);
if(r>0)return r;
auto e=GetError();
if(0==r||ECONNRESET==e)raiseFiasco("sockRead eof",s,len,e);
if(EAGAIN==e||EWOULDBLOCK==e
#ifdef CMW_WINDOWS
||WSAETIMEDOUT==e
#endif
)return 0;
raise("sockRead",s,len,e);
}
Я недавно добавил ifdef.Если я использую ETIMEDOUT в Windows, он компилируется, но не работает так же, как WSAETIMEDOUT.Я хотел бы знать, есть ли способ использовать ETIMEDOUT в Windows, чтобы мне не понадобился ifdef.Благодарю.Функция отсюда: https://github.com/Ebenezer-group/onwards/blob/master/src/cmw/Buffer.hh