portability: use socklen_t for argument to recvfrom