This is an error you get when you try to connect(2) or bind(2) a socket to an address where that address doesn't make sense. For example trying to bind a socket created with PF_INET (Protocol Family Internet) to a AF_UNIX (Address Family Unix Domain Socket) address, it just doesn't make sense. Alternatively you forgot to fill in the sin_family or uin_family field in your address structure. Either way the programmer screwed up.
This can also occur if the OperatingSystem does not support a particular protocol. For example:
$ ping6 ::1 ping6: socket: Address family not supported by protocol $ strace ping6 ::1 ... socket(PF_INET6, SOCK_RAW, 58) = -1 EAFNOSUPPORT (Address family not supported by protocol) ...
In this case, the machine does not have IPv6 support, but a program tried to use it.
5 pages link to EAFNOSUPPORT: