struct sockaddr's sa_family is unsigned short on linux

this difference raises error on big endian platforms like powerpc
add FreeBSD's spec