The sendto() documentation says
socket.sendto(string[, flags], address): Send data to the socket. The socket should not be connected to a remote socket, since the destination socket is specified by address.
So perhaps you should remove the first call to connect().