better attempt at recv:ing message with length