<p>In C/C++, how would I turn a blocking socket into a non blocking socket in both WinSocks and *nix; so that select() would work correctly. You can use the pre-processor for the platform specific code.</p>

On linux:
```
```
fcntl(fd, F_SETFL, O_NONBLOCK);
```
```
Windows
:
```
```
u_long on = 1;
ioctlsocket(fd, FIONBIO, &on);
```
```