Pergunta

Em C / C ++, como eu ia virar um soquete de bloqueio em um soquete sem bloqueio em ambos os WinSocks e * nix; de modo que select () iria funcionar corretamente. Você pode usar o pré-processador para o código de plataforma específica.

Foi útil?

Solução

No Linux:

fcntl(fd, F_SETFL, O_NONBLOCK);

o Windows :

u_long on = 1;
ioctlsocket(fd, FIONBIO, &on);

Outras dicas

select () é suposto para trabalhar em bloqueando soquetes. Ele retorna quando um read () iria retornar imediatamente, que é sempre o caso com soquetes sem bloqueio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top