use sock_perror to allow for silent errors