Почему неверный сокет определяется как ~0 в WinSock2.h (c++)?

В WinSock2.h неверный сокет и ошибка сокета определяются следующим образом? Есть ли в этом какое-то значение?

#define INVALID_SOCKET  (SOCKET)(~0)
#define SOCKET_ERROR            (-1)
19
задан unj2 30 May 2012 в 14:01
поделиться